C++11 模板函数调用模板类中的模板静态函数时发生编译错误 < >我在C++中编写模板时,编译错误,对我来说很难理解。这是密码 template<typename T> struct S { template<typename U> static void fun() { } }; template<typename T> void f() { S<T>::fun<int>(); //compile error, excepted primary expression before `int` 模板 结构 { 模板 静态void fun() { } }; 模板 void f() { S::fun();//编译错误,在'int'之前的主表达式除外`

C++11 模板函数调用模板类中的模板静态函数时发生编译错误 < >我在C++中编写模板时,编译错误,对我来说很难理解。这是密码 template<typename T> struct S { template<typename U> static void fun() { } }; template<typename T> void f() { S<T>::fun<int>(); //compile error, excepted primary expression before `int` 模板 结构 { 模板 静态void fun() { } }; 模板 void f() { S::fun();//编译错误,在'int'之前的主表达式除外`,c++11,templates,C++11,Templates,}您需要放置模板 S<T>::template fun<int>(); ^^^ S::template fun(); ^^^ 告诉编译器

}

您需要放置
模板

S<T>::template fun<int>();
      ^^^
S::template fun();
^^^
告诉编译器