CARLA
 
载入中...
搜索中...
未找到
LibCarla/source/carla/NonCopyable.h
浏览该文件的文档.
1// Copyright (c) 2017 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
9namespace carla { // 定义命名空间 carla,以避免命名冲突
10
11 /// 这个类用于禁止拷贝和移动构造函数及赋值操作
13 public:
14
15 NonCopyable() = default; // 默认构造函数
16
17 // 在C++11中,如果想要禁止类的拷贝行为只需要把相应的函数设为delete即可,参见标准库的std::unique_ptr
18 // 而在之前的标准中是把相应的函数作为private函数。
19 NonCopyable(const NonCopyable &) = delete; // 禁用拷贝构造函数
20 NonCopyable &operator=(const NonCopyable &) = delete; // 禁用拷贝赋值操作符
21
22 NonCopyable(NonCopyable &&) = delete; // 禁用移动构造函数
23 NonCopyable &operator=(NonCopyable &&) = delete; // 禁用移动赋值操作符
24 };
25
26 /// 这个类用于禁止拷贝构造函数和赋值操作,但允许移动构造函数和赋值操作
28 public:
29
30 MovableNonCopyable() = default; // 默认构造函数
31
32 MovableNonCopyable(const MovableNonCopyable &) = delete; // 禁用拷贝构造函数
33 MovableNonCopyable &operator=(const MovableNonCopyable &) = delete; // 禁用拷贝赋值操作符
34
35 MovableNonCopyable(MovableNonCopyable &&) = default; // 允许默认的移动构造函数
36 MovableNonCopyable &operator=(MovableNonCopyable &&) = default; // 允许默认的移动赋值操作符
37 };
38
39} // 结束命名空间 carla
这个类用于禁止拷贝构造函数和赋值操作,但允许移动构造函数和赋值操作
MovableNonCopyable(MovableNonCopyable &&)=default
MovableNonCopyable & operator=(MovableNonCopyable &&)=default
MovableNonCopyable(const MovableNonCopyable &)=delete
MovableNonCopyable & operator=(const MovableNonCopyable &)=delete
这个类用于禁止拷贝和移动构造函数及赋值操作
NonCopyable(NonCopyable &&)=delete
NonCopyable()=default
NonCopyable & operator=(NonCopyable &&)=delete
NonCopyable(const NonCopyable &)=delete
NonCopyable & operator=(const NonCopyable &)=delete
CARLA模拟器的主命名空间。
Definition Carla.cpp:139