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 typename을 사용하고 싶습니다.
은 이미 이것을 시도했고,이 오류가 도착했다 : 오류 : 예상을 ';'전에 '<'토큰 사용하여 C = 유형 이름 U : C –
Dam
@Dam 어떤 컴파일러를? 나는 데모 [여기]를 시도했다 (http://rextester.com/YIOAX7967). – songyuanyao
아니요, 이제 좋습니다. 감사 :) – Dam