3
テンプレートパラメータとして与えられたクラスに含まれるテンプレートクラスをインスタンス化しようとしています。これは、例を理解しやすいかもしれません:私はコメント行のコメントを解除した場合与えられたテンプレートパラメータを持つクラス内の変数を宣言します。
struct A {
static constexpr int a = 42;
class B {
int b;
};
template<typename X>
class C {
X c;
};
};
template<typename U, typename T>
class D {
int a = U::a;
using B = typename U::B;
B b;
//using C = typename U::C;
// C<T> c;
A::C<T> e;
};
int main(void) {
D<A, int> d;
return 0;
}
、コンパイラは私にCがテンプレートではないと言うエラーが発生します。私はこの変数をインスタンス化するために他のアプローチを試みましたが、うまくいかなかった。私はe変数に相当するが、U型の名前を使用したいと思う。
私はすでにこれをしようとしたと私は、このエラーが持っていた:エラー:期待を「;」「<」C =型名Uを使用してトークン :: C –
Dam
@Dam何コンパイラの前に?私はデモ[ここ](http://rextester.com/YIOAX7967)を試しました。 – songyuanyao
いいえ、今は問題ありません。ありがとう:) – Dam