在C ++ 11模板中,是否有一种方法可以将元组用作(可能是模板)函数的各个参数?
示例:
假设我具有此功能:
void foo(int a, int b)
{
}
而且我有元组auto bar = std::make_tuple(1, 2)。
我可以用它以foo(1, 2)模板方式调用吗?
我的意思不是仅仅foo(std::get<0>(bar), std::get<1>(bar))因为我想在不知道args数量的模板中执行此操作。
更完整的示例:
template<typename Func, typename... Args>
void caller(Func func, Args... args)
{
auto argtuple = std::make_tuple(args...);
do_stuff_with_tuple(argtuple);
func(insert_magic_here(argtuple)); // <-- this is the hard part
}
我应该注意,我宁愿不要创建一个适用于一个arg的模板,也不创建另一个适用于两个arg的模板,等等。
相关分类