Warum compiliert das?
-
ich sach ja immer: c++ ist echt beschädigt. aber mir glaubt ja keiner

-
das einzige problem mit c++ ist, dass, wenn man nicht die volle ahnung hat, etwas wie X aussehen, in wirklichkeit aber ein Y sein kann.
das bringt zum einen die "tolle freiheit", zum anderen aber auch kopfschmerzen

-
LordJaxom schrieb:
void doSomething() { //const char* sdgonodf = "hallo"; //foo fx(std::string(sdgonodf)); int bar(int(b)); std::cout << bar(12) << std::endl; } int bar(int(b)) { return b; }Genau.
Und dass die "zusätzlichen" Klammern um den Parameternamen OK sind wird auch schnell klar wenn man sich ansieht dass z.B. für sowas diese Klammern (genau an der Stelle) erforderlich sind:void foo(int (&array)[10]);EDIT: genau solche Verwirrung kann man gut vermeiden wenn man grundsätzlich so initialisiert:
foo fx = foo(std::string("sdgonodf")); // OK foo fx = foo(std::string(sdgonodf)); // Fehler