繁体   English   中英

函数typedef中的noexcept说明符

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM