enter 2 arguments into a void function
Hi all!!
I want to make a function that has two vectors as arguments like this:
geometry_msgs::Point point; geoemtry_msgs::Point posac; geoemtry_msgs::Point suma;
void make_suma ( const geometry_msgs::Point& point, const geometry_msgs::Point& posac)
{
suma.x=point.x + posac.x;
suma.y=point.y + posac.y;
suma.z=point.z + posac.z;
}
I get the following error when i compile it.
/home/usuario/catkin_ws/src/prueba/firmware/p1.cpp:33:60: error: invalid conversion from ‘void ()(const geometry_msgs::Point&, const geometry_msgs::Point&)’ to ‘ros::Subscriber<geometry_msgs::point>::CallbackT {aka void ()(const geometry_msgs::Point&)}’ [-fpermissive]
ros::Subscriber<geometry_msgs::point> sub("operacion", make_suma);
In file included from /home/usuario/catkin_ws/build/prueba/ros_lib/ros/node_handle.h:84:0,
from /home/usuario/catkin_ws/build/prueba/ros_lib/ros.h:38,
from /home/usuario/catkin_ws/src/prueba/firmware/p1.cpp:8:
/home/usuario/catkin_ws/build/prueba/ros_lib/ros/subscriber.h:65:7: error: initializing argument 2 of ‘ros::Subscriber<msgt>::Subscriber(const char, ros::Subscriber<msgt>::CallbackT, int) [with MsgT = geometry_msgs::Point; ros::Subscriber<msgt>::CallbackT = void ()(const geometry_msgs::Point&)]’ [-fpermissive]
Subscriber(const char * topic_name, CallbackT cb, int endpoint=rosserial_msgs::TopicInfo::ID_SUBSCRIBER) :
make[7]: * [CMakeFiles/p1.dir/p1.cpp.obj] Error 1
make[6]: * [CMakeFiles/p1.dir/all] Error 2
make[5]: * [CMakeFiles/p1.dir/rule] Error 2
make[4]: * [p1] Error 2
make[3]: * [prueba/CMakeFiles/prueba_firmware_p1] Error 2
make[2]: * [prueba/CMakeFiles/prueba_firmware_p1.dir/all] Error 2
make[1]: * [prueba/CMakeFiles/prueba_firmware_p1.dir/rule] Error 2
make: * [prueba_firmware_p1] Error 2
Invoking "make prueba_firmware_p1 -j4 -l4" failed