¿Qué es esta expresión sonriente con barba: "<:]{%>"?

Resuelto Xeo asked hace 11 años • 4 respuestas

Me encontré con el siguiente programa, que se compila sin errores ni advertencias:

int main(){
  <:]{%>; // smile!
}

Ejemplo vivo.

¿Qué hace el programa y cuál es esa expresión sonriente?

Xeo avatar Apr 01 '13 07:04 Xeo
Aceptado

El programa utiliza dígrafos para representar lo siguiente:

[] {};

Esta es una expresión lambda que no hace nada. Los símbolos correspondientes tienen estos equivalentes:

<: = [
%> = }

Aunque generalmente son innecesarios hoy en día, los dígrafos son útiles cuando su teclado carece de ciertas teclas necesarias para usar el conjunto de caracteres fuente básico de C++, es decir, los gráficos. La combinación de los caracteres que componen un dígrafo se procesa como un único token. Esto, a su vez, compensa los teclados u otro hardware o software insuficientemente equipados.

David G avatar Apr 01 '2013 00:04 David G

Esa es una lambda vacía que usa un disfraz de dígrafo. Las lambdas normales no tienen barba.

R. Martinho Fernandes avatar Apr 01 '2013 00:04 R. Martinho Fernandes

El programa utiliza dígrafos , que permiten la programación en C++ con teclados (o codificaciones de texto) que pueden no tener los caracteres que normalmente usa C++.

El código resuelve esto:

int main(){
  []{}; // smile!
}
Drew Dormann avatar Apr 01 '2013 00:04 Drew Dormann