hat msvc analog zu gcc's ({})

8

Hat msvc analog zu gcc's ({}).

Ich nehme an, die Antwort ist nein.
Bitte beachten Sie, dass dies eine Frage der Compiler-Fähigkeiten ist, nicht die Frage nach Geschmack oder Stil.

Nicht, dass ich jemandem empfehlen würde, das ({}) Konstrukt mit dieser Frage zu benutzen.

Der Verweis auf ({}) Konstrukt ist: Ссылка offiziell aufgerufen "Aussagen und Erklärungen in Ausdrücken". Es ermöglicht das Einbetten von Anweisungen (wie für, goto) und Deklarationen in Ausdrücke.

    
Andrei 13.03.2011, 18:44
quelle

2 Antworten

4

Nein, es enthält kein gleichwertiges Formular.

    
E.Benoît 13.03.2011, 18:46
quelle
10

Irgendwie ja. Dies ist ein zusammengesetzter Anweisungsausdruck , den man wie eine Lambda-Funktion betrachten könnte, die sofort aufgerufen wird. und nur einmal aufgerufen.

Aktuelle Versionen von MSVC sollten Lambda-Funktionen unterstützen, also etwa so aussehen:

%Vor%

BEARBEITEN: eine überflüssige Klammer entfernt

EDIT 2: Zu Ihrer Belustigung, hier ist ein Beispiel, wie man eine Variante mit einem (zugegebenermaßen total albernen) echten Code benutzt. Es stört nicht zu sehr die tatsächliche Nützlichkeit des Codes, aber wie expressiv es ist und wie gut der Compiler es sogar optimiert:

%Vor%

... welches gcc 4.5 kompiliert zu:

%Vor%     
Damon 13.03.2011 19:03
quelle

Tags und Links