繁体   English   中英

标准绑定等同于lambda,用于将成员函数绑定到标准函数

[英]Std bind equivalent to lambda for binding a member function to a std function

我可以使用lambda绑定私有成员函数。 我正在努力使用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应该std_function 2个参数,但是您只指定了一个。 请注意, 占位符用于稍后调用std_function时绑定的参数。

更改为

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM