[英]noexcept specifiers in function typedefs
函数typedef中是否接受noexcept说明符?
如:
typedef void (*fptr)() noexcept;
直觉上,noexcept说明符似乎有意义,因为它们允许在调用者方面进行一些优化。
我从gcc 4.6.1得到了一个复杂的答案。
typedef void (*fptr)() noexcept;
导致:错误:使用异常规范声明'fptr'
但:
template<void (*FPtr)() noexcept>
struct A{};
编译时没有警告。
clang给出:
test.cpp:1:25: error: exception specifications are not allowed in typedefs
typedef void (*fptr)() noexcept;
^
1 error generated.
这在15.4 [except.spec] / p2中的C ++ 11标准中备份:
... 异常规范不应出现在typedef声明或alias-declaration中 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.