相关疑难解决方法(0)

C++ 11:我可以从多个args转到元组,但是我可以从元组转到多个args吗?

可能重复:
如何将元组扩展为可变参数模板函数的参数?
"解包"一个元组来调用匹配的函数指针

在C++ 11模板中,有没有办法将元组用作(可能是模板)函数的各个args?

示例:
假设我有此功能:

void foo(int a, int b)  
{  
}
Run Code Online (Sandbox Code Playgroud)

我有元组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  
}
Run Code Online (Sandbox Code Playgroud)

我应该注意,我宁愿不创建一个适用于一个arg的模板,另一个适用于两个arg的模板等等...

c++ templates variadic-templates c++11

33
推荐指数
1
解决办法
2万
查看次数

标签 统计

c++ ×1

c++11 ×1

templates ×1

variadic-templates ×1