C++中的绑定函数结果
Binding function result in C++
在C++11中,有一种std::bind
方法将给定的右值或左值引用连接到函数的参数,以在函数调用时传递给定的参数,例如:
#include <functional>
#include <iostream>
int foo(int x, int y) {
return x + y;
}
int main() {
std::function<int(void)> f = std::bind(foo, 1, 2);
std::cout << f() << std::endl;
}
我的问题是,是否有一个内置的方法将函数的结果绑定到某个变量的引用,以便能够执行以下操作:
#include <functional>
#include <iostream>
int foo(int x, int y) {
return x + y;
}
int main() {
int result;
std::function<void(int, int)> f = bind_result(foo, result);
f(1, 2);
std::cout << result << std::endl;
}
使用lambda:
int result;
auto f = [&result](int a, int b){ result = foo(a, b); };
如果你想要转发任意参数的东西,你可以使用一个可变模板:
auto fvar = [&result](auto... args) {
result = foo(std::forward<decltype(args)>(args)...);
};
相关文章:
- 如何从递归函数中完全返回,该函数给出了每个函数结果的累积相加?
- 分段错误分配函数结果
- 使用函数结果作为参数的 C++
- 从可调用可变参数元组中的函数结果创建元组
- 将多个向量(函数结果)组合到一个使用模板中
- 是否可以使用自动占位符来推断非类型模板参数中的函数结果
- 大小由虚函数结果决定的数组
- C/C++编译器是否会通过重用最近计算的函数结果来优化代码?
- 从函数结果中分配 std::shared_ptr 的一行是什么?
- 将函数结果分配给变量的问题
- std::具有自定义比较函数结果的排序函数错误:必须调用对非静态成员函数的引用
- C++SFINAE运算符/函数结果类型检查
- 将函数结果作为"output parameter"返回是什么意思?
- 这将是在将函数分配给变量或一次又一次地调用函数之间使用函数结果的最佳方式
- C++中的绑定函数结果
- 有没有比生成/累积更快的方法来计算函数结果的平均值
- 为什么当递归函数结果相乘时,g++ 仍然优化尾递归
- C++成员函数结果缓存实现
- 用于输出列中对数函数结果的合适循环(c++)
- 将记录作为函数结果从Delphi DLL传递到c++