blob: 262620ddb8873f736d01df8b7e0b4c28a341a1b4 (
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
|
#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; }
|