标准库标头 <ciso646>, <iso646.h>
来自cppreference.com
此标头原作为 <iso646.h>
存在于 C 标准库。
兼容性头文件,在 C 中定义代用运算符表示,而它们在 C++ 中是关键词。
这表明在服从标准的实现中,包含此头文件无效果。
注解
在旧的或非遵从编译器中,使用代用运算符表示可能仍需要包含此头文件。
C++20 前,包含 <ciso646>
有时作为一种技巧,用于获得实现特定的库版本宏而不导致其他效果。
C++20 开始,为此目的添加了头文件 <version>。
<ciso646>
于 C++20 中移除。对应的 <iso646.h>
在 C++20 中仍可用。
运行此代码
#include <ciso646> #ifdef _LIBCPP_VERSION #error Using LLVM libc++ #elif __GLIBCXX__ // 注意:仅 6.1 或更新的版本在 ciso646 中定义它 #error Using GNU libstdc++ #elif _CPPLIB_VER // 注意:为 Visual Studio 所用 #error Using Dinkumware STL #else #error Using an unknown standard library #endif