mai*_*n-- 7 c++ function-pointers clang c++11 noreturn
当我使用clang(version 3.4 (trunk 194574))编译时:
typedef void (* FunctionThatNeverReturns [[ noreturn ]])();
Run Code Online (Sandbox Code Playgroud)
我明白了:
error: 'noreturn' attribute only applies to functions and methods
Run Code Online (Sandbox Code Playgroud)
这让我感到惊讶,因为它与旧版本的clang完美搭配.
那么如何定义指向[[ noreturn ]]函数的指针呢?
我需要这个因为我在函数内部调用函数指针[[ noreturn ]],如果函数指针没有标记为noreturn,它显然会产生警告.
哦,这有效:
typedef void (* FunctionThatNeverReturns [[ gnu::noreturn ]])();
Run Code Online (Sandbox Code Playgroud)
但是没有独立于编译器的解决方案吗?