这是 C++ 模板中的有效模板构造吗?
template < template <typename T2> class T>
void foo() {
}
是的。这是有效的。
您可以使用任何需要的类模板来调用此函数exactly一个模板参数。例如,
template<typename T>
struct A
{
//...
};
foo< A >(); //ok
请注意,您不必提供模板参数A
类模板,这意味着以下内容将导致编译错误:
foo< A<int> >(); //error
另外,在你的代码中T2
是可选的,事实上,你不能在函数中使用它,所以最好将其删除以使定义更简单:
template < template <typename> class T>
void foo() {
T<int> x; //this is how T can be instantiated; provide template argument!
}
Demo : http://ideone.com/8jlI5 http://ideone.com/8jlI5
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)