왜이 코드가 컴파일되지 않습니까?템플릿 매개 변수의 정적 멤버 템플릿 사용
struct A {
template <class T>
static T a(int i) { return 2*i; }
};
template <class T>
struct B {
double b;
B(): b(T::a<double>(5)) {}
};
template class B<A>;
컴파일러는 템플릿 인스턴스화에 도달하지 않습니다. 나는 gcc 4.7.0을 사용하고있다. a
종속 이름 (또는 그런 일이)이기 때문에
test.cc: In constructor »B<T>::B()«:
test.cc:9:25: Error: expected »(« before »<« token
test.cc:9:26: Error: expected primary-expression before »double«
아마도 컴파일러 오류 메시지를 제공 할 수 있습니까? – ronag
죄송합니다, 깜빡했습니다 –