Standard library header <ciso646> (until C++20) , <iso646.h>
이 헤더는 원래 C 표준 라이브러리에 <iso646.h> 로 존재했습니다.
호환성 헤더로, C에서 정의하는 대체 연산자 표현 은 C++에서 키워드입니다.
이는 준수하는 구현에서 이 헤더를 포함하는 것이 아무런 효과가 없음을 의미합니다.
참고 사항
구형 또는 비준수 컴파일러에서는 alternative operator representations 를 사용하기 위해 이 헤더를 포함해야 할 수 있습니다.
<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.