有时,我看到类专门化代码如下:
template <>
template < typename T >
class Foo<Foo2<T>>
{
...
};对于这样的课程:
template < typename T > class Foo {};
template < typename T > class Foo2 {};我知道这段代码意味着什么,但我的问题是:在类专门化中使用“template<>”是什么,因为没有它也可以完成相同的事情:
template <typename T> Foo<Foo2<T>> {};是否有任何情况,不限于类专门化,这种语法是必要的?(模板后面跟着另一个模板,而不是模板模板参数)
发布于 2018-09-25 07:13:54
在回答我自己的问题时(感谢Story Teller和Max Vollmer的提示),这段代码是无效的:
template <>
template < typename T >
class Foo<Foo2<T>>
{
...
};然而,关于模板<...>模板<...>语法的使用,在模板类中定义模板化方法是必要的。例如:
template < T > template < U > void Foo<T>::function() { }https://stackoverflow.com/questions/52491058
复制相似问题