Standard library header <ciso646> (until C++20) , <iso646.h>
Dieser Header war ursprünglich in der C-Standardbibliothek als <iso646.h> enthalten.
Kompatibilitätsheader, der in C alternative Operator-Repräsentationen definiert, die in C++ Schlüsselwörter sind.
Dies bedeutet, dass in einer konformen Implementierung das Einbinden dieser Header-Datei keine Auswirkung hat.
Hinweise
In alten oder nicht konformen Compilern kann die Verwendung der alternativen Operator-Repräsentationen weiterhin das Einbinden dieses Headers erfordern.
<ciso646>
wird in C++20 entfernt. Das entsprechende
<iso646.h>
ist in C++20 weiterhin verfügbar.
Vor C++20 wurde das Einbinden von
<ciso646>
manchmal als Technik verwendet, um Definitionen von implementierungsspezifischen Bibliotheksversionsmakros zu erhalten, ohne andere Effekte zu verursachen.
Ab C++20 wurde der Header
<version>
für diesen Zweck hinzugefügt.
#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
Mögliche Ausgabe:
main.cpp:7:2: error: Using Microsoft STL #error Using Microsoft STL ^ 1 error generated.