我正在尝试将元组参数转发给 VS2012(更新 3)中的函数。
我的理解是this is possible在 C++11 中使用可变参数模板,不幸的是,VS2012 只支持“假”可变参数。
auto Values = std::make_tuple(4, 8);
auto Add = [](int a, int b) -> int { return a + b; };
auto Result = forward_to_function(Add, Values);
我希望 VS2012 中有一种方法可以实现上面显示的功能,但我不确定,如果没有真正的可变参数,这是否可行?
最佳答案
我在第 9 channel 的一段视频中看到了这样的“爆炸物”。我认为这是最近的“Going Native”某人(Andrei?)被报道为具有完整的通用解决方案,但没有提出。所讨论的完整可行解决方案较少。
如果您可以等待,当前的 VS 预览版编译器具有真正的可变参数。
看看 Boost 是如何做到的:实现一大堆 args,用一个特殊的标志类型作为默认参数,表明它丢失了。
通常,对于函数(不是类)我会重载它。重载模板函数也很好:必须扩展 forward_to_function 的参数,以便它可以匹配每个参数类型,所以你无论如何都要这样做。只是你写了一些固定数量的参数而不是“...”。用另一个具有不同编号的定义重载它,数量与程序实际需要的一样多。
—约翰
关于c++ - 将元组参数转发给 VS2012 中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24419899/