什么是ROS sensor_msgs::Image::Ptr?这是一个智能指针吗



我正在阅读一些C++ROS代码,发现了

sensor_msgs::Image::Ptr something(new sensor_msgs());

这是指ROS类型的sensor_msgs/图像消息

因此,这是ROS类型传感器的Ptr_msgs/图像消息

这是什么::Ptr?我怀疑这与智能指针有关,但我知道智能指针weak_ptr、shared_ptr和unique_ptr。我不知道这个Ptr。这是标准C++还是与ROS有关的东西?(我怀疑不是因为OpenCV也有Ptr(

Ptr/ConstPtr由ROS消息生成定义,是boost共享指针。

来源:https://answers.ros.org/question/78741/message-vs-messageptr/

感谢链接,我发现

XXX::YYY::Ptr实际上是一个boost::shared_Ptr<XXX: :YYY>不是简单的C++指针。Boost共享指针是智能指针确保内存在不再存在时始终被删除的容器存在对该对象的引用。你可以阅读更多关于这些此处