c++ - 将元组参数转发给 VS2012 中的函数

标签 c++ visual-studio-2012 c++11 std-function stdtuple

我正在尝试将元组参数转发给 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/

相关文章:

c++ - 为什么即使我没有#include <algorithm> 仍然可以使用 std::max 和 std::min ?

c++ - VC11 中的 wchar 和标准输出

c++ - 未知大小的 Tilemap 数组

c++ - move 的 vector 总是空的吗?

c++ - 为什么迭代器不依赖于分配器? (也就是说,让迭代器变得可怕不会违反分配器的 typedef 抽象吗?)

c++ - 具有 unique_ptr 的类的复制构造函数

c++ - 在 C++ 中打开一个新的终端屏幕

c++ - 使用具有透视图的移动相机时如何避免像素化几何体?

.net - 抑制 MSB3276 : Found conflicts between different versions

c++ - 用户定义类型的数组成员初始化