YSTest: type_inspection.hpp 源文件

YSTest PreAlpha_b900_20201012 The YSLib Test Project

type_inspection.hpp
浏览该文件的文档.
1 /*
2 © 2011-2013, 2016, 2018-2019 FrankHB.
3
4 This file is part of the YSLib project, and may only be used,
5 modified, and distributed under the terms of the YSLib project
6 license, LICENSE.TXT. By continuing to use, modify, or distribute
7 this file you indicate that you have read the license and
8 understand and accept it fully.
9 */
10
28 #ifndef YB_INC_ystdex_type_inspection_hpp_
29 #define YB_INC_ystdex_type_inspection_hpp_ 1
30
31 #include "../ydef.h" // for <type_traits>, std::remove_cv_t, nullptr_t;
32
33 namespace ystdex
34 {
35
68 inline namespace cpp2011
69 {
70
72
73 using std::is_void;
74 using std::is_integral;
75 using std::is_floating_point;
76 using std::is_array;
77 using std::is_pointer;
78 using std::is_lvalue_reference;
79 using std::is_rvalue_reference;
80 using std::is_member_object_pointer;
81 using std::is_member_function_pointer;
82 using std::is_enum;
83 using std::is_class;
84 using std::is_union;
85 using std::is_function;
86
87 using std::is_reference;
88 using std::is_arithmetic;
89 using std::is_fundamental;
90 using std::is_object;
91 using std::is_scalar;
92 using std::is_compound;
93 using std::is_member_pointer;
94
95 using std::is_const;
96 using std::is_volatile;
97 using std::is_trivial;
98 // using std::is_trivially_copyable;
99 using std::is_standard_layout;
100 using std::is_empty;
101 using std::is_polymorphic;
102 using std::is_abstract;
103
104 using std::is_signed;
105 using std::is_unsigned;
106
107 using std::is_constructible;
109
110 using std::is_default_constructible;
111 using std::is_copy_constructible;
112 using std::is_move_constructible;
113
114 using std::is_assignable;
115 using std::is_copy_assignable;
116 using std::is_move_assignable;
117
118 using std::is_destructible;
120
122
123 using std::is_trivially_constructible;
124 using std::is_trivially_default_constructible;
125 using std::is_trivially_copy_constructible;
126 using std::is_trivially_move_constructible;
127
128 using std::is_trivially_assignable;
129 using std::is_trivially_copy_assignable;
130 using std::is_trivially_move_assignable;
132 using std::is_trivially_destructible;
134
136
137 using std::is_nothrow_constructible;
138 using std::is_nothrow_default_constructible;
139 using std::is_nothrow_copy_constructible;
140 using std::is_nothrow_move_constructible;
141
142 using std::is_nothrow_assignable;
143 using std::is_nothrow_copy_assignable;
144 using std::is_nothrow_move_assignable;
145
146 using std::is_nothrow_destructible;
148
149 using std::has_virtual_destructor;
150
151 using std::alignment_of;
152 using std::rank;
153 using std::extent;
154
155 using std::is_same;
156 using std::is_base_of;
157 using std::is_convertible;
159
160 } // inline namespace cpp2011;
161
162
167 inline namespace cpp2014
168 {
169
171 #if __cpp_lib_is_null_pointer >= 201309L
172 using std::is_null_pointer;
173 #else
174 template<typename _type>
176 struct is_null_pointer
177 : is_same<typename std::remove_cv<_type>::type, nullptr_t>
178 {};
179 #endif
180
181 } // inline namespace cpp2014;
183
184 } // namespace ystdex;
185
186 #endif
187
ystdex::cpp2014::is_null_pointer
Definition: type_inspection.hpp:178
ystdex
<memory> 特性测试宏。
Definition: ydef.h:1262