Spiel: Kontext gesucht
-
Den Gotw kenne ich schon, aber wir können den auf C++11 ausweiten.
......(Stimmt, Rätsel stellen ist leider schwieriger als lösen)
-
template <typename... Args> void f(Args......);
-
:::?
-
-
()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()();//beliebig viele?
-
volkard schrieb:
spoiler http://pastebin.de/33063
Ist falsch.
cout<<(true?1:::max(2,3))ist
cout<<(true?1:: :max(2,3))aka Syntax-Error.
(siehe http://www.gotw.ca/gotw/078.htm)
-
volkard schrieb:
()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()();//beliebig viele?
Spoiler: http://ideone.com/SwQliG.
:::ist immer noch offen.
-
willspielen schrieb:
volkard schrieb:
spoiler http://pastebin.de/33063
Ist falsch.
cout<<(true?1:::max(2,3))ist
cout<<(true?1:: :max(2,3))aka Syntax-Error.
(siehe http://www.gotw.ca/gotw/078.htm)
Schockschwerenot. Jo. Bin Ratlos.
-
Ich bringe das Programm mit
:::auf 29 Zeichen. Tipp: Es kommt kein ternärer Operator vor.
-
willspielen schrieb:
:::?
const int N=3; int main() { int i<:::N]; }
-
edit: Och, Shade war schneller

-
Ich fände Erklärungen teilweise auch gut. Für mich sieht das nach dickem Syntaxfehler aus, warum kompiliert das?
-
willspielen schrieb:
:::const int x=1,m<:::x:>={};Urgh, viel zu langsam

-
Eisflamme schrieb:
Ich fände Erklärungen teilweise auch gut. Für mich sieht das nach dickem Syntaxfehler aus, warum kompiliert das?
Immer bei ::: pars der Compiler zu :: :
Aber
http://www.imb-jena.de/~gmueller/kurse/c_c++/c_replac.htmlDa tut erst der Präprozessor ein : fressen. Und der Compiler kommt erst nachher. dran (dieser Satz leidet unter vorzeitiger Inperpunktion)
-
Eisflamme schrieb:
Ich fände Erklärungen teilweise auch gut. Für mich sieht das nach dickem Syntaxfehler aus, warum kompiliert das?
Das ist ein Digraph.
http://en.wikipedia.org/wiki/Digraphs_and_trigraphsIch war gerade auch schwer verwundert, dass ideone das compiliert, beim GCC sind mindestens die Trigraphs nämlich standardmäßig ausgeschaltet.
-
Das ist doch... also das... danke. Ich bin da Mal raus.
-
Eisflamme schrieb:
Ich fände Erklärungen teilweise auch gut. Für mich sieht das nach dickem Syntaxfehler aus, warum kompiliert das?
Digraph.
Statt [ darfst du auch <: schreiben.
Das Problem bei der Aufgabe war, dass der C++ Parser Greedy ist. dh ein ::: kann nie als : :: gelesen werden wenn das erste : nicht bereits Teil eines Tokens ist. Deshalb geht Volkards Idee mit dem ternaeren operator nicht. Denn ::: ist :: : und nicht : ::
Loesung ist nun das erste : als Teil eines Tokens zu nehmen und da gibt es nur digraphs. Der Parser liest <: und sagt: fertig! und danach kommt dann ::
-
Das begreife ich. Aber ich finde diese Di- und Trigraphen sehr unschön. Ich will nicht Mal wissen, wieso die jemand aus dem Boden gestampft hat. Noch nie davon gehört.

-
Eisflamme schrieb:
Das begreife ich. Aber ich finde diese Di- und Trigraphen sehr unschön. Ich will nicht Mal wissen, wieso die jemand aus dem Boden gestampft hat. Noch nie davon gehört.

Damals standen die Rechner in den USA und wir haben uns per Fernschreiber connectiert für 1500Mark pro zehn Minuten. Die Fernschreiber hatten je nach Marke nicht viele Sonderzeichen.
-
Es war zu grauer Vorzeit mal üblich, gewisse Zeichen mitten im ASCII-Zeichensatz für länderspezifische Zeichen zu missbrauchen. Dazu haben z.B. die eckigen und geschweiften Klammern gehört. http://de.wikipedia.org/wiki/ISO_646