blob: cca9a1faa2c9c2ea111c66763d88cb7b3b7f1b45 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
#pragma once
template <class T>
struct DefaultDeleter {
void operator()(T* ptr) const {
delete ptr;
}
};
template <class>
struct RemoveMemberPtrImpl {};
template <class T, class U>
struct RemoveMemberPtrImpl<U T::*> {
using Type = U;
};
template <class T>
using RemoveMemberPtr = typename RemoveMemberPtrImpl<T>::Type;
|