gpt4 book ai didi

c++ - 这个boost::bind语句怎么理解?和网上查的不一样

转载 作者:行者123 更新时间:2023-11-28 01:47:09 25 4
gpt4 key购买 nike

  DepthFilter::callback_t depth_filter_cb = boost::bind(&MapPointCandidates::newCandidatePoint, &map_.point_candidates_, _1, _2);

绑定(bind)函数定义如下:

void MapPointCandidates::newCandidatePoint(Point* point, double depth_sigma2)

根据bind语句,这个函数应该带3个参数。第一个是 &map_.point_candidates_,然后第二个和第三个捕获其他参数。

但实际上,定义的函数只需要 2 个参数。而且它们的类型与bind语句不一致。

最佳答案

第一个参数是成员函数的接收者(this)。生成的绑定(bind)对象只需要调用成员函数参数,不需要接收者。

然后它可以被传递给接受类函数但对调用对象的成员函数没有任何理解的东西 - 例如,std::algorithm 中的东西。

关于c++ - 这个boost::bind语句怎么理解?和网上查的不一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44599085/

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