Kiedy używać opracowanego specyfikatora typu

Czy jest jakiś szczególnie dobry powód, aby wybrać skomplikowany specyfikator typu? Na przykład w pewnych okolicznościach wymagane jest użycietemplate lubtypename słowa kluczowe, aby ujednolicić osobę zależnątemplate lub wpisz.

Ale nie mogę wymyślić żadnych przykładów, w których mogłoby to wystąpić w przypadku czegoś takiego jak wyliczenie. Weź następujący przykład kodu:

enum Foo { A,  B };

void bar(Foo foo);
void baz(enum Foo foo);

Dlaczego mógłbym wybrać składniębaz() zapewnia ponadbar() (lub odwrotnie)? Czy jest jakiś niejednoznaczny przypadek?

questionAnswers(4)

yourAnswerToTheQuestion