File tree Expand file tree Collapse file tree 1 file changed +5
-29
lines changed Expand file tree Collapse file tree 1 file changed +5
-29
lines changed Original file line number Diff line number Diff line change 99#define object_type_traits_h_included
1010#pragma once
1111
12+ #include < type_traits>
13+
1214// #define USE_BOOST
1315
1416#ifdef USE_BOOST
2830
2931 template <bool expression, typename T1, typename T2>
3032 struct _if {
31- template <bool >
32- struct selector {
33- typedef T2 result;
34- };
35-
36- template <>
37- struct selector <true > {
38- typedef T1 result;
39- };
40-
41- typedef typename selector<expression>::result result;
33+ using result = typename std::conditional<expression, T1, T2>::type;
4234 };
4335
4436 template <typename T1, typename T2>
4537 struct is_type {
46- template <typename T>
47- struct selector {
48- enum { value = false , };
49- };
50-
51- template <>
52- struct selector <T1> {
53- enum { value = true , };
54- };
55-
56- enum { value = selector<T2>::value, };
38+ enum { value = std::is_same<T1,T2>::value, };
5739 };
5840
5941 template <typename T>
10284
10385 template <typename T>
10486 struct is_void {
105- template <typename P>
106- struct select {enum { value = false }; };
107-
108- template <>
109- struct select <void > {enum { value = true }; };
110-
111- enum { value = select<T>::value};
87+ enum { value = std::is_same<void ,T>::value };
11288 };
11389
11490 template <typename T> struct is_const {
You can’t perform that action at this time.
0 commit comments