Namespaces
Variants

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

From cppreference.net
Standard library headers

이 헤더는 원래 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.