¿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?