Namespaces
Variants

Standard library header <ciso646> (until C++20) , <iso646.h>

From cppreference.net
Standard library headers

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.