gpt4 book ai didi

c++ - Std bind 相当于 lambda,用于将成员函数绑定(bind)到 std 函数

转载 作者:行者123 更新时间:2023-11-30 03:25:35 26 4
gpt4 key购买 nike

我可以使用 lambda 绑定(bind)私有(private)成员函数。我正在努力使用 std::bind 编写等价物。这是我的尝试,但无法编译。

#include <functional>

class A {
private:
double foo(double x, double y);
public:
A();
std::function<double(double,double)> std_function;
};

A::A() {
// This works:
//std_function = [this](double x, double y){return foo(x,y);};

std_function = std::bind(&A::foo,this,std::placeholders::_1));
}

最佳答案

std_function 应该采用 2 个参数,但您只指定了一个。请注意 placeholders用于稍后调用 std_function 时要绑定(bind)的参数。

改成

std_function = std::bind(&A::foo, this, std::placeholders::_1, std::placeholders::_2);

关于c++ - Std bind 相当于 lambda,用于将成员函数绑定(bind)到 std 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48945958/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com