如何检查单个的C ++ 0x / C ++语言11功能的存在? 我知道锵有一个很好的系统这一点。 什么GCC,Visual Studio或升压? 我想这样做是为了检测编译器的版本,并涉及,要在该版本引入的功能的一种方式。 但是,这很麻烦。 已经有人已经这样做了?
Answer 1:
升压配置配备了一个脚本来检查一些但不是所有的C ++ 11功能。
它会生成一个配置文件与宏每个功能。
Answer 2:
您构建工具也许能够帮助这个。
CMake的有try_compile
命令,它可以让你测试的代码示例是否会编译并设置基于编译结果的变量。
目前,我刚刚被使用更普遍支持的功能,如auto
打字。
你可以经常使用升压替换丢失的库功能,同时编译器和库的更新和错误修正,这可能是几年的最佳选择。
在C ++为GCC 11功能兼容性列表在这里: http://gcc.gnu.org/projects/cxx0x.html
注意警告信息:
重要提示:GCC对C ++ 11的支持仍处于试验阶段。 某些功能是基于早期的建议实施,并没有将尝试保持时候都更新,以匹配最终C ++ 11标准的后向兼容性。
文章来源: C++11 feature checking