blob: cb4cb5b75ea2909f3da6b482c7b09b8f726651b4 (
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
29
30
31
32
33
34
|
#include "Private.h"
using namespace crepe;
bool Private::empty() const noexcept {
return this->instance == nullptr;
}
Private::~Private() {
if (this->instance == nullptr) return;
this->destructor(this->instance);
}
Private::Private(Private && other) {
*this = std::move(other);
}
Private & Private::operator=(Private && other) {
// TODO: ideally this function checks for self-assignment
this->instance = other.instance;
this->destructor = other.destructor;
this->type = other.type;
other.instance = nullptr;
other.destructor = [](void*){};
return *this;
}
Private::Private(const Private & other) { }
Private & Private::operator=(const Private & other) {
return *this;
}
|