如何检测Clang中的libstdc ++版本? [英] How to detect the libstdc++ version in Clang?
本文介绍了如何检测Clang中的libstdc ++版本?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想在Clang中编写一个便携式C ++库。 可移植意味着我(在C预处理器中)检测编译环境中可用的C ++功能,并使用这些功能或提供我的解决方法。这与Boost库正在做的类似。
但是,某些功能的存在不取决于语言,而取决于标准库实现。我特别感兴趣的是:
- 输入traits(其中有可用的和用什么拼写)
- 如果
initializer_list
为constexpr
。
我发现这个问题,因为Clang默认不使用自己的标准库实现:它使用libstdc ++。虽然Clang已预定义预处理程序宏 __ GNUC __
, __ GNUC_MINOR __
, __ GNUC_PATCHLEVEL __
,它们分别硬编码为值4,2,1,他们告诉我一些关于可用的libstdc ++功能。