aboutsummaryrefslogtreecommitdiff
path: root/source/TypeTraits.hpp
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;