要测试一个特性,cppreference提到了这些特性测试宏:链接。如果编译器支持该特性,则定义了宏。但是我不明白为什么如果被定义了,它们会被定义为像
201606
这样的东西,我认为这是C++的一个版本,而不是编译器的版本。例如,我正在使用带有-std=c++17
的最新版本GCC来使用__cpp_lib_hardware_interference_size
特性。该宏未定义,我想这意味着GCC没有此特性,尽管我已经使用c++17(和c++2a)开关尝试了8.2.1。在这种情况下,文档中记录的值的意义是什么:__cpp_lib_hardware_interference_size 201703
(在cppreference链接内部)?