标准库头文件 <ciso646> (直到 C++20), <iso646.h>
来自 cppreference.com
此头文件最初在 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.