How do I fix this syntax error?
struct A { template < typename T > void f () {} }; template < typename C, typename U > struct B { void g () {
U is a dependent type so you need to specify that f is a template member:
U
f
U::template f<C>();
This is still invalid when U is A, though, as f is not a static member of A.
A
static