我正在尝试编写将执行以下操作的代码:假设我们调用了自定义绑定函数
auto bind_obj = bind(some_func, _1, "test")
在我们拥有之后
auto res = bind_obj(42)
其中函数 some_func:
int some_func(int val, string test)
如何将占位符与实际函数调用中提供的参数匹配,即 bind_obj(...)?
换句话说,是否可以遍历 std::tuple (此处的参数和占位符)和可变参数包(函数参数):
- 推导出函数 some_func 的返回类型;
- 制作正确的 std::tuple 以在 some_func() 调用中进一步使用它?
我正在尝试不使用 boost 和 std::functional 来做到这一点。我认为,我的主要问题是我不明白如何在运行时使用参数构建元组(所有占位符都正确替换)并推断返回类型。
我在 STL "functional.h" 中看到了 _Mu 模板结构,但它看起来过于复杂且过载。