summaryrefslogtreecommitdiffstats
path: root/core/macros.hh
blob: 9a7610900d1bdc6c721af89f51988b480b7f46da (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#ifndef CORE_MACROS_HH
#define CORE_MACROS_HH 1
#pragma once

#define DISABLE_COPY_OPERATORS(class_name)                 \
public:                                                    \
    explicit class_name(const class_name& other) = delete; \
    class_name& operator=(const class_name& other) = delete

#define DISABLE_MOVE_OPERATORS(class_name)            \
public:                                               \
    explicit class_name(class_name&& other) = delete; \
    class_name& operator=(class_name&& other) = delete

#define DECLARE_DEFAULT_CONSTRUCTOR(class_name) \
public:                                         \
    class_name(void) = default

#endif /* CORE_MACROS_HH */