아래 패패루님 말씀처럼, C++Builder 6에서는 not_eq 등을 제외하면 다 컴파일됩니다.
간단히 답변을 드리면, iso646.h나 ciso646.h 헤더파일을 인클루드하면 됩니다.
iso646.h와 ciso646.h 헤더파일은 각각 C와 C++ 표준 헤더파일이고, ciso646.h 헤더는 간단히
iso646.h 헤더를 포함하는 역할만 합니다. 이 파일들을 보면 not_eq가 != 로 디파인되어 있습니다.
Daniel님께서 allternate punctuation token라고 말씀하셨는데, 간단히 말해서 '대체표기법'이라고
생각하시면 됩니다. 이런 대체표기법은, ANSI에서 ISO로 C 표준이 넘어가면서 아스키코드의 문제점
때문에 필요성이 대두된 것입니다.
보통 프로그래밍 언어의 소스코드는 7비트 아스키코드로 되어있는데, 이 7비트 아스키코드의
몇개 문자는 유럽언어권의 언어마다 글자가 다릅니다. 그중 대표적인 것이 다음의 문자들입니다.
# $ @ [ \ ] ^ ` { | } ~
이중 상당수가 C/C++ 언어에서 중요한 언어 요소로서 사용되는 것이죠.
이넘들이 유럽언어중 몇개국어에서는 이상한 다른 문자로 나타나기 때문에
그래서 이 문자들을 대체해서 표기할 필요가 있어서 ISO 646 표준이 만들어졌습니다.
자세한 내용은 다음 링크를 참고하시구요.
http://czyborra.com/charsets/iso646.html
어쨌든... 우리같이 아예 7비트로는 아무것도 표기가 안되는 아시아권과는 아무런 상관이 없는
표준입니다. 영어권이 아닌 유럽넘들을 위한 거죠.
물론 gcc에도 이 헤더파일들이 있습니다.
gcc에서 명시적인 인클루드 없이 컴파일이 된다면, 아마도 기본으로 인클루드되는 모양이네요.
그럼...
|