Standardbibliotheks-Header <ciso646> (bis C++20), <iso646.h>
Dieser Header war ursprünglich in der C-Standardbibliothek als <iso646.h> enthalten.
Kompatibilitäts-Header, definiert in C alternative Operator-Darstellungen, die in C++ Schlüsselwörter sind.
Das bedeutet, dass das Einbinden dieses Headers in einer konformen Implementierung keine Auswirkungen hat.
[bearbeiten] Anmerkungen
Bei alten oder nicht-konformen Compilern kann die Verwendung der alternativen Operator-Darstellungen 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 Makros zur Bibliotheksversion zu erhalten, ohne andere Effekte zu verursachen. Ab C++20 wurde zu diesem Zweck der Header <version> 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.