summaryrefslogtreecommitdiff
path: root/includes/c++11-surrogates.h
blob: 4f3a1a0fae2e9109dc29f2725f76c2bce8fbd40b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#pragma once

namespace Balau {

template <typename T> struct RemoveReference {
    typedef T type;
};

template <typename T> struct RemoveReference<T&> {
    typedef T type;
};

template <typename T> struct RemoveReference<T&&> {
    typedef T type;
};

template <typename T> typename RemoveReference<T>::type&& Move(T&& t) {
    return static_cast<typename RemoveReference<T>::type&&>(t);
}

};