Quando usar um especificador de tipo elaborado
Existe uma boa razão para escolher usar um especificador de tipo elaborado? Por exemplo, em determinadas circunstâncias, é necessário usar otemplate
outypename
palavras-chave para desambiguar um dependentetemplate
ou digite.
Mas não consigo pensar em nenhum exemplo em que isso ocorreria para algo como uma enumeração. Tome o seguinte exemplo de código:
enum Foo { A, B };
void bar(Foo foo);
void baz(enum Foo foo);
Por que eu escolhi usar a sintaxebaz()
fornece maisbar()
(ou vice-versa)? Existe algum caso ambíguo?