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?