Spiel: Kontext gesucht
-
Folgendes Spiel: Von einem gegebenen Programmausschnitt ist der Kontext gesucht, in dem der Code valid wird.
Beispiel:
()()()Mögliche Lösung:
typedef void(*F)(); typedef F (*F1)(); F1 ()()() ; // ^^^^^^Tricks mit Makros oder Stringliteralen sind nicht erlaubt.
Aufgabe 1:
>*>*>*>Aufgabe 2:
()<(X)>()<X>(X)
-
Hihi, das ist lustig. Dein eigenes Beispiel ist jedoch falsch:
http://ideone.com/ONwup2Korrektur:
http://ideone.com/U1NvCfAnti Spoiler 1:
http://ideone.com/fXJlZg
edit: Ups, eine > habe ich vergessen, aber die Idee ist wohl klar. Einfach eine Ebene weiter gehen.Uhh, an 2 muss ich noch ein bisschen knabbern.
edit: Grr, 15 Minuten und keine Lösung
. Ich lasse das für heute mal vorerst ruhen…
edit2: Was ja klar, sobald ich das obige schreibe fällt mir keine 30 Sekunden später die Lösung ein:
Anti-Spoiler 2:
http://ideone.com/qlmwog
-
willspielen schrieb:
Tricks mit Makros oder Stringliteralen sind nicht erlaubt.
Wie sieht's mit Kommentaren aus?

-
SeppJ schrieb:
edit: Grr, 15 Minuten und keine Lösung
. Ich lasse das für heute mal vorerst ruhen…
Ja, 2 ist etwas schwerer. Eine vollständige kompilierbare Lösung mit main bringe ich auf 92 Zeichen unter (erzeugt allerdings ein paar Warnings).Bei meinem Code im Beispiel muss man sich einfach noch ein main um alles denken: http://ideone.com/m18onC. Ich komme mit einem typedef weniger als deine Korrektur aus, weil ich den Konstruktor benutze.
@cooky451: Gilt auch nicht.
-
Gratulation, SeppJ.
Ich finde echt krank, was die armen Compiler alles machen müssen um Templates zu parsen.
-
willspielen schrieb:
SeppJ schrieb:
edit: Grr, 15 Minuten und keine Lösung
. Ich lasse das für heute mal vorerst ruhen…
Ja, 2 ist etwas schwerer. Eine vollständige kompilierbare Lösung mit main bringe ich auf 92 Zeichen unter (erzeugt allerdings ein paar Warnings).Ich hatte wenige Sekunden nachdem ich obiges schreib die Erleuchtung und hab's oben reineditiert.
Es fällt mir schwer, mich mit einem Rätsel zu revanchieren, da ich mal annehme, dass du GotW kennst und dir daher etwas wie
&&&&&
oder
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
(das erste ist übrigens schwieriger) bereits bekannt ist. Rätsel stellen ist schwieriger als lösen.^
viele edits: Rechtschreibung ist schwer^
-
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)