标准库头文件 <ciso646> (直到 C++20), <iso646.h>
来自 cppreference.cn
此头文件最初在 C 标准库中为 <iso646.h>。
兼容性头文件,在 C 中定义了 备选运算符表示,它们在 C++ 中是关键字。
这意味着在符合规范的实现中,包含此头文件没有任何效果。
[编辑] 注释
在旧的或不符合规范的编译器中,使用 备选运算符表示 可能仍然需要包含此头文件。
<ciso646>
在 C++20 中被移除。对应的 <iso646.h>
在 C++20 中仍然可用。
在 C++20 之前,包含 <ciso646>
有时被用作获取特定于实现的库版本宏定义的技术,而不会引起其他效果。 从 C++20 开始,添加了头文件 <version> 以达到此目的。
运行此代码
#include <ciso646> #ifdef _LIBCPP_VERSION #error Using LLVM libc++ #elif __GLIBCXX__ // Note: only version 6.1 or newer define this in ciso646 #error Using GNU libstdc++ #elif _CPPLIB_VER // Note: used by Visual Studio #error Using Microsoft STL #else #error Using an unknown standard library #endif
可能的输出
main.cpp:7:2: error: Using Microsoft STL #error Using Microsoft STL ^ 1 error generated.