为了保持通用和简单,请说我有一个整数的std :: vector,例如:
std::vector<int> v;
Run Code Online (Sandbox Code Playgroud)
现在,我想知道的是,是否有可能从v中取n(其中n是编译时已知的常量)值并将它们传递给任意函数?我知道这对于可变参数模板是可行的:
template<typename... T>
void pass(void (*func)(int, int, int), T... t) {
func(t...);
}
Run Code Online (Sandbox Code Playgroud)
然后我们希望'pass'被调用正好3个整数.细节并不重要.我想知道的是,以下是某种可行的方式:
void pass(void (*func)(int, int, int), std::vector<int> &t) {
auto iter = t.begin();
func((*iter++)...);
}
Run Code Online (Sandbox Code Playgroud)
哪里......被用作可变参数模板?基本上,我问我是否可以
这可能与C++ 11一起使用吗?注意到我需要这个在MSVC v120/VS2013上工作.