在ros的订阅器方法subscribe中,想要传递参数进去,代码如下
#include "ros/ros.h"
#include <nav_msgs/OccupancyGrid.h>
//#include <boost/bind.hpp>
void mapcallback(const nav_msgs::OccupancyGrid::ConstPtr& msg, int* k)//Map_Info* mapdata)
{
//doing stuff
}
int main(int argc, char **argv)
{
ros::init(argc, argv, "mapper");
ros::NodeHandle n;
int test;
//boost::bind(&mapcallback, _1, test);
ros::Subscriber sub2=n.subscribe("map",1, boost::bind(&mapcallback, _1, &test));
while (ros::ok())
{
ros::spinOnce();
sleep(2);
}
return 0;
}
产生了报错:
error: no matching function for call to ‘ros::NodeHandle::subscribe(const char [4], int, boost::_bi::bind_t<void, void (*)(const boost::shared_ptr<const nav_msgs::OccupancyGrid_<std::allocator<void> > >&, int), boost::_bi::list2<boost::arg<1>, boost::_bi::value<int> > >)’
ros::Subscriber sub2=n.subs