ros-industrial / ros2_canopen

CANopen driver framework for ROS2
https://ros-industrial.github.io/ros2_canopen/manual/rolling/
140 stars 60 forks source link

Add boost bind no placeholders #130

Closed hellantos closed 1 year ago

hellantos commented 1 year ago

Older boost versions automatically declare placeholders _1, _2 in global namespace. This behaviour can be stopped by defining BOOST_BIND_NO_PLACEHOLDERS.

hellantos commented 1 year ago

It is a problem with old boost versions. They define placeholders in global namespace by default. We don't use boost::bind.

We use boost lockfree queues though for synchronization between lely event loop and ros driver update loop. They include the boost::bind headers, which the make _1 etc ambiguous. I am currently not aware of std lockfree queues.

When I think about it probably removing using std::placeholders should also solve this.

destogl commented 1 year ago

I have fix this manually in or code to use "std::placeholders" explicitly on each occurance.