How do I fix this syntax error?
struct 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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With