Warum ist der folgende Code in C++ zulässig?Warum ist es in C++ legal, einen Konstruktor eines primitiven Typs aufzurufen?
bool a(false);
Ich meine, sollte der T a(VALUE)
Konstruktor aufrufen, nicht wahr? Ich nehme an, es wird nicht als Funktionsdeklaration geparst. Aber bool
ist ein einfacher Typ, es hat keinen Konstruktor. Oder tut es?
Ich verwende Visual Studio 2012, wenn es relevant ist.
Es ist legal, weil die Designer der Sprache so gesagt haben. Was wäre ein guter Grund, es illegal zu machen? – juanchopanza
'int x (5)' ist ebenfalls erlaubt. Der "Konstruktor" ist nur ein No-Op, wenn wir wollen. – edmz
Warum einfache Typen keine Konstruktoren haben können? – user3528438