可能重复:
C++11 功能检查
我对noexcept
随着 GCC 4.7 的引入似乎在 C++11 标准库中乱扔垃圾的规范案例特别感兴趣。在这种情况下,检测编译器版本就足够了;这是生成可移植代码的最佳机制吗?
#include <system_error>
class server_error_category : public std::error_category
{
public:
virtual const char* name () const { ... }
//
// fails beginning with gcc4.7,
// looser throw specifier ...
// overriding 'virtual const char* std::error_category::name() const noexcept (true)
...
};