模板<>模板<类型名 T> 语法有什么用?
What is template<> template<typename T> syntax for?
有时我看到这样的类专用代码:
template <>
template < typename T >
class Foo<Foo2<T>>
{
...
};
对于这样的类:
template < typename T > class Foo {};
template < typename T > class Foo2 {};
我知道这段代码是什么意思,但我的问题是:鉴于没有它可以完成同样的事情,"模板<>"在类专业化中有什么用:
template <typename T> Foo<Foo2<T>> {};
是否有任何情况,不限于类专用化,需要这种语法?(模板后跟另一个模板,而不是模板模板参数(
回答我自己的问题(感谢Story Teller和Max Vollmer的提示(,这段代码是无效的:
template <>
template < typename T >
class Foo<Foo2<T>>
{
...
};
虽然,关于模板的使用<...>模板<...>语法,在模板化类中定义模板化方法是必要的。 例如:
template < T > template < U > void Foo<T>::function() { }
相关文章:
- .cpp和.h文件中的模板专用化声明
- C++模板来检查友元函数的存在
- 如何使用默认参数等选择模板专业化
- 模板参数替换失败,并且未完成隐式转换
- 具有默认模板参数的多态类的模板推导失败
- 部分定义/别名模板模板参数
- 模板-模板参数推导:三个不同的编译器三种不同的行为
- 具有奇怪重复模板模式的派生类中的成员变量已损坏
- 如何在c++中为模板函数实例创建快捷方式
- 使用C++中的模板和运算符重载执行矩阵运算
- 有人能分解一下这个c++模板的语法吗
- 如何在c++17中制作一个模板包装器/装饰器
- 模板化建造师专业化
- 调用专用模板时出错"no matching function for call to [...]"
- 模板元程序查找相似的连续类型名称
- 如何在C++20中创建模板别名的推导指南
- 没有名称的C++模板参数
- 具有重复类型的C++可变模板
- 如何将enable-if与模板参数和参数包一起使用
- 什么是模板&lt;&gt;inline bla bla