C++ - 功能特性测试

标准中为 C++11 和之后引入的 C++ 语言和程序库的功能特性定义了一组预处理器宏。标准有意使之成为检测这些功能特性是否存在的一种简单且可移植的方式。

检查

__has_cpp_attribute( 属性记号 )

检查你的编译器是否支持某些属性(某些特性/语法/宏)……

可以在#if #elif 的表达式中展开 __has_cpp_attribute#ifdef#ifndef、 (#elifdef#elifndef (C++23 起) )和 defined 把它当做已定义的宏,但不能在别处使用它。