chatgpt是一本正经的回答,有时候也是一本正经的胡说八道,不过挺有意思的。
下面回归正题,就是为何使用std::bind生成一个可调用的对象,叫做callable object。已经如何使用std::bind绑定类的成员函数。
#include <iostream>
#include <functional>using namespace std;class Person
{
public:int Add(int a, int b){return a + b;}
};int main() {Person p;std::function<int(int, int)> func = std::bind(&Person::Add, &p, 3, std::placeholders::_2);int c = func(1, 2);return 0;
}
我们将类Person的Add函数,对象p,以及参数3和一个占位参数std::placeholders::_2绑定成一个对象func。
然后后面在合适的适合调用。