これは、ISO C++ 標準 14.6/6 のステートメントです。
クラス テンプレートの定義内またはクラス テンプレートのメンバーの定義内で
typename
、型を宣言するクラス テンプレートの以前に宣言されたメンバーの非修飾名を参照する場合、キーワードは必要ありません。typename
修飾子が単にクラス テンプレート名であっても、修飾名を使用してメンバーが参照される場合、キーワードは常に指定されます。【例:template<class T> struct A { typedef int B; A::B b; // ill-formed: typename required before A::B void f(A<T>::B); // ill-formed: typename required before A<T>::B typename A::B g(); // OK };
キーワード typename は、修飾名が
A
、またはパラメーター list を持つクラス テンプレート内のシノニムであるA<T>
ためにA
必要です。]A<T>
<T>
このステートメントは継承中に当てはまりますか?
はいの場合、誰かがこれを説明できますか?
内部クラスに確認しました。それは受け入れられますか?しかし、継承で確認できませんか?