如何检查C ++ 11支持?

如何检查C ++ 11支持?

有没有办法在编译时检测编译器是否支持C ++ 11的某些功能?例如,像这样:


#ifndef VARIADIC_TEMPLATES_SUPPORTED


#error "Your compiler doesn't support variadic templates.  :("


#else


template <typename... DatatypeList>

class Tuple

{

    // ...

}


#endif


潇湘沐
浏览 802回答 3
3回答

UYOU

Boost.Config有许多宏可用于测试对特定C ++ 11功能的支持。

函数式编程

如C ++ 11标准(§iso.16.8)所述:编译C ++转换单元时,名称__cplusplus被定义为值201103L。使用该宏的值,您可以检查编译器是否符合C ++ 11。现在,如果您正在寻找一种标准方法来检查编译器是否支持C ++ 11功能的任何子集,我认为没有标准的,可移植的方式;&nbsp;您可以检查编译器文档或std库头文件以获取更多信息。
打开App,查看更多内容
随时随地看视频慕课网APP