Standard library header <ciso646> (until C++20) , <iso646.h>
Este encabezado estaba originalmente en la biblioteca estándar de C como <iso646.h> .
Encabezado de compatibilidad, en C define representaciones alternativas de operadores que son palabras clave en C++.
Esto significa que en una implementación conforme, incluir este encabezado no tiene efecto.
Notas
En compiladores antiguos o no conformes, usar las representaciones alternativas de operadores aún puede requerir incluir este encabezado.
<ciso646>
se elimina en C++20. El correspondiente
<iso646.h>
sigue disponible en C++20.
Antes de C++20, incluir
<ciso646>
a veces se utilizaba como una técnica para obtener definiciones de macros de versión de biblioteca específicas de la implementación sin causar otros efectos.
A partir de C++20, se añadió el encabezado
<version>
para este propósito.
#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
Salida posible:
main.cpp:7:2: error: Using Microsoft STL #error Using Microsoft STL ^ 1 error generated.