C++ std::bind函数用法
看一个例子解释用法:
TcpServer类的构造函数中定义:
acceptor_->setNewConnectionCallback(std::bind(&TcpServer::newConnection, this,std::placeholders::_1, std::placeholders::_2));// 有一个新的客户端的连接,acceptor会执行这一个回调
void TcpServer::newConnection(int sockfd, const InetAddress &peerAddr)//有新连接来了
{ //轮询算法,选择一个subLoop,来管理channelEventLoop *ioLoop = threadPool_->getNextLoop(); ......
}
this 指针: 在类的成员函数中,this 是一个指向当前对象的指针。它用于访问该对象的成员变量和成员函数。
std::bind: 这个函数模板允许将一个成员函数与特定的对象进行绑定,从而可以创建一个可调用对象
。std::bind(&TcpServer::newConnection, this, std::placeholders::_1, std::placeholders::_2)
创建了一个可调用对象
,它将调用当前 TcpServer 对象(由 this 指向)的 newConnection 函数,并将 std::placeholders::_1 和 std::placeholders::_2 作为参数传递给它。
调用的时候,会传参:
newConnectionCallback_(connfd, peerAddr);