Let us start here, from square one. No, from Zero!

This commit is contained in:
smpn2
2022-09-30 22:45:51 +09:00
parent 14215af0d1
commit b7a60638a4
1005 changed files with 303069 additions and 0 deletions
+22
View File
@@ -0,0 +1,22 @@
#pragma once
namespace util {
template<typename T>
class IncompleteTypeDeleter {
public:
void operator()(T *wrapped_ptr) const {
auto ptr = reinterpret_cast<uint8_t *>(wrapped_ptr);
delete[] ptr;
}
};
template<typename T>
using unique_plain_ptr = std::unique_ptr<T, IncompleteTypeDeleter<T>>;
template<typename T>
inline std::unique_ptr<T, IncompleteTypeDeleter<T>> make_unique_plain(size_t size) {
return unique_plain_ptr<T>(reinterpret_cast<T *>(new uint8_t[size]));
}
}