从介绍http://en.cppreference.com/w/cpp/language/parameter_pack看,似乎“参数包”的概念与“可变参数模板”相同。那么它们之间的概念差异是什么?
谢谢!
答案 0 :(得分:5)
从语法上讲,参数包是可变参数模板的一部分。例如,
template<class ... Types> struct Tuple {};
是可变结构模板,Types
是其中的参数包。 Tuple
本身不是参数包。
您可以将任何类型参数集传递给Tuple
,并将它们打包到Types
包。例如在代码中
Tuple<int, float, std::string> foo;
我们使用Tuple
,int
和float
类型实例化了string
模板,并获得了实际类型Tuple<int, float, std::string>
的结构。 Tuple
的代码现在可以expand Types
打包。