Was ist dieser Smiley-mit-Bart-Ausdruck: “”?

Lesezeit: 1 Minute

Was ist dieser Smiley mit Bart Ausdruck
Xeo

Dabei bin ich auf folgendes Programm gestoßen, das ohne Fehler oder gar Warnungen kompiliert:

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

Live-Beispiel.

Was macht das Programm und was ist dieser Smiley-Ausdruck?

  • Würden Sie bitte in Betracht ziehen, die akzeptierte Antwort zu ändern?

    – nhahtdh

    16. Dezember 2014 um 12:57 Uhr

  • @nhahtdh Er kann nicht. Robot (der Autor der akzeptierten Antwort) sagte, er werde seine Antwort löschen. Der springende Punkt, ihm das Häkchen zu geben, besteht darin, ihn daran zu hindern, da wir keine wertvollen Antworten verlieren wollen.

    – Mystisch

    16. Dezember 2014 um 17:53 Uhr


  • @Mystcial: Lustige Antworten machen Spaß, aber am Ende des Tages helfen sie den Lesern nicht wirklich.

    – nhahtdh

    16. Dezember 2014 um 17:56 Uhr

  • @nhahtdh Die Antwort macht sowohl Spaß als auch beschreibt, was los ist. Die Tatsache, dass es sich um ein leeres Lambda handelt und eine Digraph-Verkleidung hat, sollte ausreichen, um den Lesern genügend Informationen zu liefern. Es hält nicht in der Hand: Die nächste Antwort unten tut es. Händchenhalten ist schön; Das Fehlen derselben bedeutet jedoch nicht, dass das OP seine Antwort ändern sollte, wenn es sie nicht benötigt.

    – Yakk – Adam Nevraumont

    10. März 2015 um 19:05 Uhr

  • Bitte bearbeiten Sie den Titel nicht so. Es ist nicht “lang” und wird als Ausdruck verwendet, was ein wichtiger Punkt für die Frage ist (andernfalls hätte es auch in einem Kommentar verwendet werden können).

    – Xeo

    24. August 2015 um 9:09 Uhr

Was ist dieser Smiley mit Bart Ausdruck
David G

Das Programm verwendet Digraphen Folgendes darstellen:

[] {};

Dies ist ein Lambda-Ausdruck, der nichts tut. Die entsprechenden Symbole haben diese Äquivalente:

<:= [
%> = }

Though they are generally unneeded today, digraphs are useful for when your keyboard lacks certain keys necessary to use C++'s basic source character set, namely the graphical ones. The combination of the characters that make up a digraph are processed as a single token. This in turn makes up for any insufficiently-equipped keyboards or other such hardware or software.

That's an empty lambda using a digraph disguise. Normal lambdas don't have beards.

1646153409 968 Was ist dieser Smiley mit Bart Ausdruck
Drew Dormann

The program is using digraphs, which allow C++ programming with keyboards (or text encodings) that may not have the characters C++ typically uses.

The code resolves to this:

int main(){
  []{};  // Lächeln!  }

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

Es ist im Grunde ein Lambda-Ausdruck (Der Lambda-Ausdruck ist einer von C++11 Funktionen) verwenden Digraphen (Sowohl Digraphen als auch Trigraphen funktionieren in C++):

[] {};

Nur Digraphen verwenden:

<:]<%};  <:]<%%>;

[:>{%>; // like my cubic hat?

[:><%};

[:><%%>;

Mixing them with Trigraphs:

<:??)<%??>; // popeye

??(:>{??>; // pirate

902860cookie-checkWas ist dieser Smiley-mit-Bart-Ausdruck: “”?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy