development

“<:] {%>”수염이있는 웃는 표현은 무엇입니까?

big-blog 2020. 3. 16. 08:21
반응형

“<:] {%>”수염이있는 웃는 표현은 무엇입니까?


다음 프로그램을 보았습니다.이 프로그램은 오류 나 경고없이 컴파일됩니다.

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

반응형