¿No hay paréntesis en un constructor sin argumentos un lenguaje estándar?

Estaba compilando un programa C ++ en Cygwin usando g ++ y tenía una clase cuyo constructor no tenía argumentos. Tenía las lineas:

MyClass myObj();
myObj.function1();

Y al intentar compilarlo, recibí el mensaje:

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

Después de un poco de investigación, descubrí que la solución era cambiar esa primera línea a

MyClass myObj;

Podría jurar que he hecho declaraciones de constructor vacías con paréntesis en C ++ antes. ¿Es esto probablemente una limitación del compilador que estoy usando o el estándar del lenguaje realmente dice que no use paréntesis para un constructor sin argumentos?

Respuestas a la pregunta(8)

Su respuesta a la pregunta