¿Hay alguna razón particularmente buena para elegir utilizar un especificador de tipo elaborado? Por ejemplo, en determinadas circunstancias, se requiere que utilice las palabras clave template
o typename
para eliminar la ambigüedad de un template
dependiente o escriba.Cuándo utilizar un especificador de tipo elaborado
Pero no puedo pensar en ningún ejemplo donde esto podría ocurrir por algo como una enumeración. Tome el ejemplo de código siguiente:
enum Foo { A, B };
void bar(Foo foo);
void baz(enum Foo foo);
¿Por qué podría optar por utilizar la sintaxis baz()
proporciona más de bar()
(o viceversa)? ¿Hay algún caso ambiguo?
¿No es la sintaxis de baz simplemente un remanente del viejo estilo C en el que no había escrito la enumeración, por lo que tuvo que referirse explícitamente a ella como enum? Me gusta cómo usaría struct Foo f; si no hubieras tipeado la estructura? En C++, el typedef está implícito en la declaración enum/struct, por lo que no es necesario indicar que el tipo es enum/struct quizás. – cppguy
similar ... http://stackoverflow.com/questions/742699/returnning-an-enum-from-a-function-in-c –