关于c ++:模板参数

Templated arguments

本问题已经有最佳答案,请猛点这里访问。

对于将模板参数作为参数的函数,正确的语法是什么?

1
 void myFunction (const Foo::Bar<T>& x)

它是

1
2
 template<typename T>
 void myFunction (const typename Foo::Bar<T>& x)

另外,我应该使用

1
template<typename T>

1
template<class T>

谢谢。


你明白了。

1
2
template<typename T>
void myFunction (const typename Foo::Bar<T>& x)

是正确的。使用class还是typename都不重要。最好是typename,因为历史原因,class在那里。不过,它们完全相同。查看这个问题以获得一些解释。