当前位置:  开发笔记 > 编程语言 > 正文

有没有办法确定C++编译器实现的语言功能?

如何解决《有没有办法确定C++编译器实现的语言功能?》经验,为你挑选了1个好方法。

不同的C++编译器在不同的时间点实现各种语言功能(例如,参见clang C++ status和gcc c ++ status ;同样适用于其他编译器).在创建C++库时,通常需要支持最新功能以改善用户体验.当支持新功能而不是在任何地方实现的公共子集时,了解编译器支持哪些功能而不必为每个编译器支持一组版本号是有帮助的.

是否有合理标准化的功能测试集可以在编译时用于确定编译器是否支持特定的语言功能?



1> Sneftel..:

您可能无法比Boost.Config库做得更好.它定义了各种C++ 11和C++ 14特性的预处理器宏,这些特性在VC++等C++ 11/14-ish编译器上并不普遍支持.它就像你要达到标准一样接近.

IIRC,它与autoconf类似,通过预建(并在必要时执行)一堆简单的测试程序.我不认为你会得到任何完全在编译时运行的东西,只是因为在一个实现中存在关键字,而在另一个实现中存在语法错误.

推荐阅读
yzh148448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有