Я работаю с ROS, и моя задача - перенести существующие проекты из ros1 в ros2. В ros1 поток работает как
ROS_INFO_STREAM(String << variable << ...)
существует, но не в ros2, потому что они еще не реализованы в rclcpp. Моя идея - написать функцию на c ++, которая работает с этими операторами и работает как std :: cout. Но я действительно не знаю, как реализовать такую функцию.
У кого-нибудь есть идея или подход?
Решение :
Возможное решение - определить макрос как этот
#define ROS_INFO_STREAM(logger, _msgStream) std::stringstream stream_buffer; stream_buffer << _msgStream; ROS_INFO(logger, stream_buffer.str().c_str());
в отдельном заголовочном файле и включайте его везде, где это необходимо.