CARLA
 
载入中...
搜索中...
未找到
CarlaListener.h
浏览该文件的文档.
1// Copyright (c) 2022 Computer Vision Center (CVC) at the Universitat Autonoma de Barcelona (UAB).
2// This work is licensed under the terms of the MIT license.
3// For a copy, see <https://opensource.org/licenses/MIT>.
4
5#pragma once // 防止头文件被多次包含(即,确保此头文件在每个编译单元中只被包含一次)。
6
7// 设置 _GLIBCXX_USE_CXX11_ABI 为 0,这是为了兼容旧的 C++ ABI(应用程序二进制接口)。
8// 这通常用于确保与在 GCC 5 之前编译的二进制库的兼容性。
9#define _GLIBCXX_USE_CXX11_ABI 0
10
11#include <memory> // 包含C++标准库中的内存管理功能,如智能指针。
12
13// 定义命名空间 carla,在其内部再定义一个子命名空间 ros2。
14// 这有助于组织代码,避免命名冲突。
15namespace carla {
16namespace ros2 {
17
18 // 前向声明 CarlaListenerImpl 类。
19 // 这意味着在此处声明了一个名为 CarlaListenerImpl 的类,
20 // 但其定义将在其他地方给出。这样做通常是为了解决循环依赖问题。
21 class CarlaListenerImpl;
22
23 // CarlaListener 类定义开始。
24 class CarlaListener {
25 public:
26 // 默认构造函数。
27 CarlaListener();
28
29 // 析构函数。
30 ~CarlaListener();
31
32 // 删除拷贝构造函数,防止对象被拷贝。
33 CarlaListener(const CarlaListener&) = delete;
34
35 // 删除拷贝赋值运算符,防止对象通过赋值操作被拷贝。
36 CarlaListener& operator=(const CarlaListener&) = delete;
37
38 // 删除移动构造函数,防止对象被移动。
39 CarlaListener(CarlaListener&&) = delete;
40
41 // 删除移动赋值运算符,防止对象通过赋值操作被移动。
42 CarlaListener& operator=(CarlaListener&&) = delete;
43
44 // 使用 std::unique_ptr 管理 CarlaListenerImpl 对象的生命周期。
45 // 这确保了 CarlaListenerImpl 对象在 CarlaListener 对象被销毁时也会被正确销毁。
46 // 同时,这也提供了异常安全性和内存泄漏保护。
47 std::unique_ptr<CarlaListenerImpl> _impl;
48 };
49}
ConcurrentQueue & operator=(ConcurrentQueue const &) MOODYCAMEL_DELETE_FUNCTION
CARLA模拟器的主命名空间。
Definition Carla.cpp:139