许多新的C ++功能(如模块或概念)很可能不会出现在下一个标准C ++ 17中,而是成为Technical Specification的一部分。
我们如何检查这样的TS是否可用? 是否会有标准方式?
答案 0 :(得分:2)
每个技术规范都有其自己的(一组)功能测试宏。
例如,文件系统TS(n4100/2014)为此在标头__cpp_lib_experimental_filesystem
上指定宏<experimental/filesystem>
:
为方便起见,5.2功能测试宏[fs.req.macros]
2标头
<experimental/filesystem>
应提供以下宏定义:
#define __cpp_lib_experimental_filesystem 201406
p0096r5对所有这些宏都有很好的选择。
不过,您可能需要事先使用__has_include
检查必要的标题。