C ++创建流函数,如ROS_INFO_STREAM(var1 << var2 << ...)

时间:2019-01-10 13:45:42

标签: c++ dataoutputstream ros2

我正在与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());

放在单独的头文件中,并在需要的地方包括它。

0 个答案:

没有答案