CARLA
 
载入中...
搜索中...
未找到
Memory.h
浏览该文件的文档.
1// Copyright (c) 2019 Computer Vision Center (CVC) at the Universitat Autonoma
2// de Barcelona (UAB).
3//
4// This work is licensed under the terms of the MIT license.
5// For a copy, see <https://opensource.org/licenses/MIT>.
6
7#pragma once // 防止头文件被重复包含
8
9#include <boost/enable_shared_from_this.hpp> // 引入boost库中的enable_shared_from_this,允许对象安全地生成自己的shared_ptr
10#include <boost/make_shared.hpp> // 引入boost库中的make_shared,用于创建shared_ptr实例
11#include <boost/shared_ptr.hpp> // 引入boost库中的shared_ptr,智能指针,用于自动管理资源
12#include <boost/weak_ptr.hpp> // 引入boost库中的weak_ptr,弱引用智能指针,不拥有对象,但可以检查对象是否存在
13
14namespace carla {
15
16 /// 使用这个SharedPtr(boost::shared_ptr)以保持与boost::python的兼容性,
17 /// 但未来如果可能的话,我们希望能为std::shared_ptr制作一个Python适配器。
18 template <typename T>
19 using SharedPtr = boost::shared_ptr<T>;
20 /// 类似于SharedPtr,但提供对boost::weak_ptr的别名,用于弱引用
21 template <typename T>
22 using WeakPtr = boost::weak_ptr<T>;
23 /// 允许类的实例安全地生成指向自身的shared_ptr
24 template <typename T>
25 using EnableSharedFromThis = boost::enable_shared_from_this<T>;
26 // 模板函数,用于创建shared_ptr实例,并转发参数给T的构造函数
27 /// 类似于boost::make_shared,但封装在carla命名空间中
28 template <typename T, typename... Args>
29 static inline auto MakeShared(Args &&... args) { // 使用 boost::make_shared 创建一个 shared_ptr 实例,转发给 T 的构造函数
30 return boost::make_shared<T>(std::forward<Args>(args)...);
31 }
32
33} // namespace carla
CARLA模拟器的主命名空间。
Definition Carla.cpp:139
boost::weak_ptr< T > WeakPtr
类似于SharedPtr,但提供对boost::weak_ptr的别名,用于弱引用
Definition Memory.h:22
static auto MakeShared(Args &&... args)
类似于boost::make_shared,但封装在carla命名空间中
Definition Memory.h:29
boost::shared_ptr< T > SharedPtr
使用这个SharedPtr(boost::shared_ptr)以保持与boost::python的兼容性, 但未来如果可能的话,我们希望能为std::shared_ptr制作一个Python适配器。
Definition Memory.h:19