Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/146.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 关于模板类语法_C++_Templates_Template Specialization_Parameter Pack - Fatal编程技术网

C++ 关于模板类语法

C++ 关于模板类语法,c++,templates,template-specialization,parameter-pack,C++,Templates,Template Specialization,Parameter Pack,我想问一些关于模板类的问题。我知道一些基本知识,比如: template<typename X, typename Y> class tmp{ ... } 模板 类tmp{ ... } 然而,在编程作业的起始文件中,我看到了一种新格式: template<typename X, typename... Y> class tmp<std::tuple<Y...>,X>{ ... } 模板 类tmp{ ... } 在这里,我知道“…”是参数包,

我想问一些关于模板类的问题。我知道一些基本知识,比如:

template<typename X, typename Y>
class tmp{
...
}
模板
类tmp{
...
}
然而,在编程作业的起始文件中,我看到了一种新格式:

template<typename X, typename... Y>
class tmp<std::tuple<Y...>,X>{
...
}
模板
类tmp{
...
}
在这里,我知道“…”是参数包,但是为什么在类的名称后面还有另一个“<>”

template<typename X, typename... Y>
class tmp<std::tuple<Y...>,X>{
...
}
模板
类tmp{
...
}
是一个符号,表示:

我们有一个带有参数
X
的模板和一个参数包
Y
。类
tmp
是一个模板类,它在
tuple
变量中使用参数pack
Y
,并将
X
作为一个简单的模板变量


但是,这是模板的专门化。

专门化。