Sind keine Klammern in einem Konstruktor ohne Argumente ein Sprachstandard?

Ich kompilierte ein C ++ - Programm in Cygwin mit g ++ und hatte eine Klasse, deren Konstruktor keine Argumente hatte. Ich hatte die Zeilen:

MyClass myObj();
myObj.function1();

Und als ich versuchte, es zu kompilieren, bekam ich die Nachricht:

error: request for member 'function1' in 'myObj', which is of non-class type 'MyClass ()()'

Nach ein wenig Recherche stellte ich fest, dass das Problem darin bestand, die erste Zeile in zu ändern

MyClass myObj;

Ich könnte schwören, dass ich zuvor leere Konstruktordeklarationen mit Klammern in C ++ durchgeführt habe. Ist dies wahrscheinlich eine Einschränkung des verwendeten Compilers oder besagt der Sprachstandard wirklich, dass für einen Konstruktor ohne Argumente keine Klammern verwendet werden?

Antworten auf die Frage(8)

Ihre Antwort auf die Frage