{..} in ( ? : ) Ausdruck
-
Hallo,
gerade habe ich zu meiner Überraschung festgestellt, dass mein
Compiler ( g++ (GCC) 4.1.2 ) folgendes Stück Code compiliert und
ausserdem auch noch das tut, was man erwarten würde.#include <iostream> using namespace std; int main() { int a; const char* foo=0; const char* bar=0; a=0; cout << ( ({foo="hallo1";bar="welt1";a==0;}) ? foo : bar ) << endl; a=1; cout << ( ({foo="hallo2";bar="welt2";a==0;}) ? foo : bar ) << endl; }Ist es wirklich erlaubt einen {...} Block in runden Klammern versteckt
in den ( ? : ) Operator zu packen, oder ist das ein Bug oder gar eine Erweiterung vom g++?
-
Erweiterung.
-
JoeX schrieb:
Ist es wirklich erlaubt einen {...} Block in runden Klammern versteckt
in den ( ? : ) Operator zu packen, oder ist das ein Bug oder gar eine Erweiterung vom g++?Erweiterung.
-
Danke!