summaryrefslogtreecommitdiffhomepage
path: root/src/kernel/CompilerKit/Detail.h
blob: cc51dfdc43d557f2d1e3820bd372ef125e44ad3d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// Copyright 2024-2025, Amlal El Mahrouss (amlal@nekernel.org)
// Licensed under the Apache License, Version 2.0 (see LICENSE file)
// Official repository: https://github.com/nekernel-org/nekernel

#ifndef COMPILERKIT_DETAIL_H
#define COMPILERKIT_DETAIL_H

#ifdef __NEOSKRNL__
#include <NeKit/Config.h>
#endif  // ifdef __NEOSKRNL__

#define NE_COPY_DELETE(KLASS)              \
  KLASS& operator=(const KLASS&) = delete; \
  KLASS(const KLASS&)            = delete;

#define NE_COPY_DEFAULT(KLASS)              \
  KLASS& operator=(const KLASS&) = default; \
  KLASS(const KLASS&)            = default;

#define NE_MOVE_DELETE(KLASS)         \
  KLASS& operator=(KLASS&&) = delete; \
  KLASS(KLASS&&)            = delete;

#define NE_MOVE_DEFAULT(KLASS)         \
  KLASS& operator=(KLASS&&) = default; \
  KLASS(KLASS&&)            = default;

#endif