p = new int{99} : Visual Studio Fehler, g++ keiner
-
Hey,
ich lern grad mit nem Kumpel auf die kommende OOP Klausur (Sprache ist C++)
Nun ist in einer alten Klausur folgende Frage gestellt worden:Geben Sie in der Tabelle an was von den drei C++ Anweisungen je erzeugt wird oder ob es einen Syntaxfehler gibt.
Ein Eintrag in der Tabelle ist dann:
int* p = new int{99};
Wir waren uns da nicht sicher und haben einfach mal den Compiler gefragt.
Problem ist nun aber:
Unter G++ erzeugt er ein dynamisches Array mit dem einen Eintrag 99.
Unter Visual Studio bekommen wir eine Fehlermeldung.Ist dies nun ein "entgegenkommen" des G++ oder tatsächlich Sprachstandard der von Visual Studio einfach nicht unterstützt wird?!?
Was wäre eure Antwort auf diese Frage !?
Gruß MichEben
-
int* p = new int{99};Legal in C++11, dem aktuellen Standard (hat den gleichen Effekt wie:
int* p = new int(99);In C++03 ist diese Form nicht zulässig.
-
ok super danke

-
Das nennt sich Uniform-Initialization, und ist ein C++11-feature.
Weil G++ es unterstützt, ist es dort akzeptabel. VC++ unterstützt mehrere neue Features noch nicht (
), deswegen produziert das da einen Syntaxfehler.