Standard library header <ciso646> (until C++20) , <iso646.h>
Этот заголовочный файл изначально находился в стандартной библиотеке 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.