2
template <typename T>
struct A
{
template <typename T1>
struct B {};
};
template <typename T>
using b = A<T>::B;
上記の行はコンパイルを拒否します。C++でクラステンプレートの別名を付けることはできますか?
打ち鳴らすには、このエラーを与える:クラステンプレートの 使用「< Tを> :: type」はBがテンプレートであるため、テンプレート引数に
を提供する必要があり、 :: Bは依存型です。 –
Borgleader
'struct A'は、' A :: B'(例えば)がタイプの代わりに静的変数になるテンプレート特殊化を持つことができます。だから、コンパイラのために、 'A :: B'が型の前に' typename'を書くことによって期待していると指定しなければなりません。 –
KABoissonneault