반응형
“<:] {%>”수염이있는 웃는 표현은 무엇입니까?
다음 프로그램을 보았습니다.이 프로그램은 오류 나 경고없이 컴파일됩니다.
int main(){
<:]{%>; // smile!
}
프로그램은 무엇을하고, 그 웃는 표현은 무엇입니까?
그것은 digraph 변장을 사용하는 빈 람다입니다. 정상적인 람다는 수염이 없습니다.
이 프로그램은 digraph 를 사용 하여 다음을 나타냅니다.
[] {};
이것은 아무것도하지 않는 람다 식입니다. 해당 기호는 다음과 같습니다.
<: = [
%> = }
비록 오늘날에는 일반적으로 필요하지 않지만, digraphs는 키보드에 C ++의 기본 소스 문자 세트, 즉 그래픽 키를 사용하는 데 필요한 특정 키가 없을 때 유용합니다. digraph를 구성하는 문자 조합은 단일 토큰으로 처리됩니다. 이는 불충분하게 장착 된 키보드 나 기타 하드웨어 또는 소프트웨어를 보완합니다.
이 프로그램은 digraphs 를 사용하여 C ++에서 일반적으로 사용하는 문자가 없을 수있는 키보드 (또는 텍스트 인코딩)로 C ++ 프로그래밍을 허용합니다.
코드는 다음과 같이 해결됩니다.
int main(){
[]{}; // smile!
}
int main(){ <:]{%>; // smile! }
그것은 기본적으로 A의 람다 식 (람다 표현식 중 하나 인 C ++ 11 개 기능 사용) 이중 음자 (이중 음자와 trigraph를 모두 C에서 작동 ++) :
[] {};
digraph 만 사용 :
<:]<%};
<:]<%%>;
[:>{%>; // like my cubic hat?
[:><%};
[:><%%>;
Trigraphs와 혼합 :
<:??)<%??>; // popeye
??(:>{??>; // pirate
참고 URL : https://stackoverflow.com/questions/15736282/what-is-this-smiley-with-beard-expression
반응형
'development' 카테고리의 다른 글
Bash 파일에 문자열이 있는지 테스트하는 방법은 무엇입니까? (0) | 2020.03.16 |
---|---|
작업과 스레드 차이 (0) | 2020.03.16 |
PHP cURL이 단일 요청으로 응답 헤더와 본문을 검색 할 수 있습니까? (0) | 2020.03.16 |
C #에서 "사용"의 용도는 무엇입니까 (0) | 2020.03.16 |
JVM을 원격으로 디버깅 할 수 있도록 설정하는 Java 명령 행 옵션은 무엇입니까? (0) | 2020.03.16 |