4
「沒有匹配的調用」錯誤我仍然對boost :: bind新手,現在正在移植一個在2009年2年前編寫的程序,看到下面的編譯錯誤。任何想法解決方法將不勝感激。使用boost :: bind
提取CPP的文件:在CMake的
class ClassA {
private:
cNamespace::Bounds bounds_msg_;
void boundsHandler(const PublisherPtr& p) {
p->publish(bounds_msg_);
}
void funcA() {
node_->advertise<cNamespace::Bounds>("bounds", 10,
boost::bind(&ClassA::boundsHandler, this, _1)); // <---- Line 445
}
};
錯誤:
/home/userA/ClassA.cpp:445: instantiated from here
/usr/include/boost/bind/bind.hpp:313: error: no match for call to ‘(boost::_mfi::mf1<void, ClassA, const PublisherPtr&>) (ClassA*&, const ros::SingleSubscriberPublisher&)’
環境:Ubuntu的10.10,克++(Ubuntu的/ Linaro的4.4.4-14ubuntu5)4.4.5
強權沒有必要,但函數advertise
的API參考是here,或者:
template<class M >
Publisher advertise (const std::string &topic,
uint32_t queue_size,
const SubscriberStatusCallback &connect_cb,
const SubscriberStatusCallback &disconnect_cb=SubscriberStatusCallback(),
const VoidConstPtr &tracked_object=VoidConstPtr(),
bool latch=false)