C++11特性之std::bind和std::placeholders

1.std::bind

C++11的std::bind特性用于把可调用对象保存起来,在需要的时候再调用。

这是一种延迟计算的思想。延迟计算是函数式编程语言的特性,即不直接求值,而是在用到的时候,才进行计算。延迟计算的一个好处是能够建立可计算的无限列表而没有妨碍计算的无限循环或大小问题。

2.std::placeholders

placeholders为占位符的意思,用于函数绑定的时候,缺省函数的占位符。

样例如下:

class Test
{
public:
    int Member1(int i) { return 12+i; }
    int Member2(int i,char ch,float f)
    {
        std::cout <         return 12+i;
    }
    static int StaticMember3(int i) { return 66+i; }
};

Test test;
auto fun = std::bind(&Test::Member1,test,std::placeholders::_1);
fun(4);

 

你可能感兴趣的:(C++)