精巧な型指定子を使用することを選択する特別な理由はありますか?たとえば、特定の状況では、template
またはtypename
のキーワードを使用して、依存関係を明確にする必要があります。精巧な型指定子を使用するタイミング
しかし、これは列挙などの場合に発生する例は考えられません。次のコード例を見てみましょう:
enum Foo { A, B };
void bar(Foo foo);
void baz(enum Foo foo);
なぜ私は構文baz()
を使用することを選択するかもしれませんがbar()
(またはその逆)上で提供して?あいまいな場合はありますか?
baz構文は、列挙型をtypedefしていない古いCスタイルのキャリーオーバーではないので、明示的に列挙型として参照する必要がありますか?あなたがstruct Foo fを使う方法のように。構造体をtypedefしなかった場合は? C++ではtypedefはenum/struct宣言に暗黙的に記述されているので、型をenum/structと言っている必要はありませんか? – cppguy
類似... http://stackoverflow.com/questions/742699/returning-an-enum-from-a-function-in-c –