How do I fix this syntax error?
str开发者_如何学Cuct A {
template < typename T >
void f () {}
};
template < typename C, typename U >
struct B {
void g () {
U::f < C > (); // expected primary-expression before »>« token
}
};
int main () {
B<int,A> b;
b.g ();
}
U is a dependent type so you need to specify that f is a template member:
U::template f<C>();
This is still invalid when U is A, though, as f is not a static member of A.
加载中,请稍侯......
精彩评论