dfx
0.1.0
Linux-based dynamic dataflow executor
Loading...
Searching...
No Matches
CopyMoveControl.hpp
Go to the documentation of this file.
1
// SPDX-FileCopyrightText: 2025 Vincent Leroy
2
// SPDX-License-Identifier: MIT
3
//
4
// This file is part of dfx.
5
//
6
// Licensed under the MIT License. See the LICENSE file in the project root
7
// for full license information.
8
9
#pragma once
10
25
27
#define DISABLE_COPY(ClassName) \
28
ClassName(ClassName const &) = delete; \
29
ClassName & operator=(ClassName const &) = delete
30
32
#define DISABLE_MOVE(ClassName) \
33
ClassName(ClassName &&) = delete; \
34
ClassName & operator=(ClassName &&) = delete
35
37
#define DISABLE_COPY_AND_MOVE(ClassName) \
38
DISABLE_COPY(ClassName); \
39
DISABLE_MOVE(ClassName)
40
42
#define ENABLE_DEFAULT_COPY(ClassName) \
43
ClassName(ClassName const &) = default; \
44
ClassName & operator=(ClassName const &) = default
45
47
#define ENABLE_DEFAULT_COPY_NOEXCEPT(ClassName) \
48
ClassName(ClassName const &) noexcept = default; \
49
ClassName & operator=(ClassName const &) noexcept = default
50
52
#define ENABLE_DEFAULT_MOVE(ClassName) \
53
ClassName(ClassName &&) = default; \
54
ClassName & operator=(ClassName &&) = default
55
57
#define ENABLE_DEFAULT_MOVE_NOEXCEPT(ClassName) \
58
ClassName(ClassName &&) noexcept = default; \
59
ClassName & operator=(ClassName &&) noexcept = default
60
62
#define ENABLE_DEFAULT_COPY_AND_MOVE(ClassName) \
63
ENABLE_DEFAULT_COPY(ClassName); \
64
ENABLE_DEFAULT_MOVE(ClassName)
65
67
#define ENABLE_DEFAULT_COPY_AND_MOVE_NOEXCEPT(ClassName) \
68
ENABLE_DEFAULT_COPY_NOEXCEPT(ClassName); \
69
ENABLE_DEFAULT_MOVE_NOEXCEPT(ClassName)
70
72
#define ENABLE_DEFAULT_MOVE_DISABLE_COPY(ClassName) \
73
ENABLE_DEFAULT_MOVE(ClassName); \
74
DISABLE_COPY(ClassName)
75
77
#define ENABLE_DEFAULT_MOVE_DISABLE_COPY_NOEXCEPT(ClassName) \
78
ENABLE_DEFAULT_MOVE_NOEXCEPT(ClassName); \
79
DISABLE_COPY(ClassName)
lib
dfx-utilities
CopyMoveControl.hpp
Generated by
1.14.0