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
    

Anmelden zum Antworten