cpp-toolbox  0.0.1
A toolbox library for C++
Loading...
Searching...
No Matches
class.hpp
Go to the documentation of this file.
1#pragma once
2
15#define CPP_TOOLBOX_DISABLE_COPY(ClassType) \
16 ClassType(const ClassType&) = delete; \
17 ClassType& operator=(const ClassType&) = delete;
18
31#define CPP_TOOLBOX_DISABLE_MOVE(ClassType) \
32 ClassType(ClassType&&) = delete; \
33 ClassType& operator=(ClassType&&) = delete;
34
47#define CPP_TOOLBOX_DISABLE_COPY_AND_MOVE(ClassType) \
48 CPP_TOOLBOX_DISABLE_COPY(ClassType) \
49 CPP_TOOLBOX_DISABLE_MOVE(ClassType)
50
62#define CPP_TOOLBOX_DEFAULT_CONSTRUCTOR(ClassType) ClassType() = default;
63
75#define CPP_TOOLBOX_DELETE_CONSTRUCTOR(ClassType) \
76 ClassType(const ClassType&) = delete; \
77 ClassType(ClassType&&) = delete;
78
94#define CPP_TOOLBOX_SINGLETON(ClassType) \
95public: \
96 static ClassType& instance() \
97 { \
98 static ClassType instance; \
99 return instance; \
100 } \
101\
102private: \
103 ClassType() = default; \
104 CPP_TOOLBOX_DISABLE_COPY(ClassType) \
105 CPP_TOOLBOX_DISABLE_MOVE(ClassType)