C++ 元组作为函数参数
如果可能的话,我有点困惑,如何在函数中使用可变元组作为参数,以及如何初始化它C++ 元组作为函数参数,c++,c++11,tuples,variadic,C++,C++11,Tuples,Variadic,如果可能的话,我有点困惑,如何在函数中使用可变元组作为参数,以及如何初始化它 template <typename T, Arg ...> void foo (int a, std::tuple<T, sizeof(Arg)> TupleTest); ... foo(TupleTest(2, "TEST", 5.5)); 模板 voidfoo(inta,std::tuple-TupleTest); ... foo(TupleTest(2,“TES
template <typename T, Arg ...>
void foo (int a, std::tuple<T, sizeof(Arg)> TupleTest);
...
foo(TupleTest(2, "TEST", 5.5));
模板
voidfoo(inta,std::tuple-TupleTest);
...
foo(TupleTest(2,“TEST”,5.5));
如何使用c++0x实现这一点?您不需要获取模板参数的数量。只要这样做:
template <typename... T>
void foo(int a, std::tuple<T...> TupleTest);
// make_tuple so we don't need to enter all the type names
foo(0, std::make_tuple(2, "TEST", 5.5));
模板
voidfoo(inta,std::tuple-TupleTest);
//生成tuple,这样我们就不需要输入所有类型名
foo(0,std::make_tuple(2,“TEST”,5.5));
您不需要获取模板参数的数量。只要这样做:
template <typename... T>
void foo(int a, std::tuple<T...> TupleTest);
// make_tuple so we don't need to enter all the type names
foo(0, std::make_tuple(2, "TEST", 5.5));
模板
voidfoo(inta,std::tuple-TupleTest);
//生成tuple,这样我们就不需要输入所有类型名
foo(0,std::make_tuple(2,“TEST”,5.5));
您想要sizeof
做什么?只需使用变量展开:
template <typename T, typename Arg ...>
void foo(int a, std::tuple<T, Arg...> TupleTest);
最后,类型参数
T
没有实际用途(除非您明确禁止空模板列表),因此您可以删除它而不会丢失。您想要sizeof
做什么?只需使用变量展开:
template <typename T, typename Arg ...>
void foo(int a, std::tuple<T, Arg...> TupleTest);
最后,类型参数
T
没有实际用途(除非您明确禁止空模板列表),因此您可以删除它而不会丢失它。这有点不清楚-您试图实现什么?你可以说模板void foo(std::tuple t){/*…*/}
。什么是TupleTest?它是一种元组吗?为什么inta
在元组之外?把sizeof(Arg)
放在那里有什么意义?这有点不清楚-你想实现什么?你可以说模板void foo(std::tuple t){/*…*/}
。什么是TupleTest?它是一种元组吗?为什么inta
在元组之外?把sizeof(Arg)
放在那里有什么意义?