这不会编译:
template<class X> struct A {
template<int I> void f() {}
};
template<class T> void g()
{
A<T> a;
a.f<3>(); // Compilation fails here (Line 18)
}
int main(int argc, char *argv[])
{
g<int>(); // Line 23
}
编译器(gcc)说:
hhh.cpp:在函数“ void g()”中:
hhh.cpp:18:错误:')'标记之前的预期主表达式
hhh.cpp:在函数'void g()[with T = int]'中:
hhh.cpp:23:从此处实例化
hhh.cpp:18:错误:成员使用无效(您忘记了“&”吗?)
谁能解释为什么?有没有办法让它工作?
一只名叫tom的猫
12345678_0001
相关分类