猿问

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

在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的模板,等等。


万千封印
浏览 492回答 2
2回答
随时随地看视频慕课网APP
我要回答