c++의 대체 가능한 토큰
글쓴이: vani2 / 작성시간: 화, 2013/11/12 - 12:12오후
출처: cinsk.org
대체 가능한 토큰 [alternate punctuation token spellings]
C++에서는 구두점 토큰punctuation token 대신에 다음 토큰들을 쓸 수 있습니다:
and &&
and_eq &=
bitand &
bitor |
compl ~
not !
not_eq !=
or ||
or_eq |=
xor ^
xor_eq ^=
위 키워드들은 C++ 전처리기preprocessor에서도 인식합니다.
C90에서는 (역자 주: 사실상 C89/C90/C99 모두) 위 키워드들을 제공하지 않습니다. 대신 위 이름들을 헤더 파일에서 (C90부터) 매크로로 제공하기 때문에, 키워드처럼 쓸 수 있긴 합니다.
위의 규칙이있다는 사실에 바로 실험을 해보았습니다.
void main() { bool a = 12 and 12; }
VC++ 2013과 G++ std=c++11 옵션 추가
환경에서 컴파일 했으며
G++에선 잘 돌아가지만 VC에선 오류가 나네요.
이 상황은 VC가 표준을 따르지 않은 것인가요? 아니면 이 문법이 표준이 아닌가요?
C++11기준으로 배우고 있기에... C++11 표준기준으로 설명해주시면 감사하겠습니다.
Forums:
"alternative punctuation
"alternative punctuation token visual c++"으로 구글을 뒤지면 첫 결과물이 아래 링크입니다. #include 을 해줘야하는 예외적인 컴파일러로 Visual C++이 예시되어 있네요.
http://en.wikipedia.org/wiki/C_alternative_tokens
VS2013에서도 컴파일 오류가 나오는 것을 보니, 이 버전에서도 여전히 이들 operator를 매크로로 정의해서 대충 넘어가고 있는 모양이네요.
아. 그렇군요. 답변감사합니다.
아. 그렇군요.
답변감사합니다.
댓글 달기