通过Lambdas解包Variadic参数

时间:2013-03-31 23:54:08

标签: c++ c++11 lambda

我正在尝试避免外部函数或递归调用,所以我决定测试lambdas的力量,但是我被卡住了。如果可能的话,我如何使用lambdas解包Args...

我尝试std::tie将参数放入元组然后我尝试使用std::get<I>,其中I是一个非const整数,但它失败了因为get需要{{1 }}

我也尝试过初始化列表,我知道这些列表会失败但值得一试。我不想以维基百科的方式去做。我想这样做:

任何想法或我注定要失败?

constexpr

1 个答案:

答案 0 :(得分:3)

如果我理解你想要达到的目的,你可以使用这个简单的技巧:

std::function<void(Args... A)> Unpack = [&](Args... A) {
    auto l = {((std::cout << A), 0)...};
};

调用Unpack函数对象将导致所有参数插入std::cout(因此,打印到标准输出)。