00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00035 #ifndef _TYPE_TRAITS_FWD_H
00036 #define _TYPE_TRAITS_FWD_H 1
00037
00038 #include <cstddef>
00039
00040
00041 namespace std
00042 {
00043 namespace tr1
00044 {
00046 template<typename _Tp, _Tp __v>
00047 struct integral_constant;
00048 typedef integral_constant<bool, true> true_type;
00049 typedef integral_constant<bool, false> false_type;
00050
00052 template<typename _Tp>
00053 struct is_void;
00054
00055 template<typename _Tp>
00056 struct is_integral;
00057
00058 template<typename _Tp>
00059 struct is_floating_point;
00060
00061 template<typename _Tp>
00062 struct is_array;
00063
00064 template<typename _Tp>
00065 struct is_pointer;
00066
00067 template<typename _Tp>
00068 struct is_reference;
00069
00070 template<typename _Tp>
00071 struct is_member_object_pointer;
00072
00073 template<typename _Tp>
00074 struct is_member_function_pointer;
00075
00076 template<typename _Tp>
00077 struct is_enum;
00078
00079 template<typename _Tp>
00080 struct is_union;
00081
00082 template<typename _Tp>
00083 struct is_class;
00084
00085 template<typename _Tp>
00086 struct is_function;
00087
00089 template<typename _Tp>
00090 struct is_arithmetic;
00091
00092 template<typename _Tp>
00093 struct is_fundamental;
00094
00095 template<typename _Tp>
00096 struct is_object;
00097
00098 template<typename _Tp>
00099 struct is_scalar;
00100
00101 template<typename _Tp>
00102 struct is_compound;
00103
00104 template<typename _Tp>
00105 struct is_member_pointer;
00106
00107
00108 template<typename _Tp>
00109 struct __is_union_or_class;
00110
00112 template<typename _Tp>
00113 struct is_const;
00114
00115 template<typename _Tp>
00116 struct is_volatile;
00117
00118 template<typename _Tp>
00119 struct is_pod;
00120
00121 template<typename _Tp>
00122 struct is_empty;
00123
00124 template<typename _Tp>
00125 struct is_polymorphic;
00126
00127 template<typename _Tp>
00128 struct is_abstract;
00129
00130 template<typename _Tp>
00131 struct has_trivial_constructor;
00132
00133 template<typename _Tp>
00134 struct has_trivial_copy;
00135
00136 template<typename _Tp>
00137 struct has_trivial_assign;
00138
00139 template<typename _Tp>
00140 struct has_trivial_destructor;
00141
00142 template<typename _Tp>
00143 struct has_nothrow_constructor;
00144
00145 template<typename _Tp>
00146 struct has_nothrow_copy;
00147
00148 template<typename _Tp>
00149 struct has_nothrow_assign;
00150
00151 template<typename _Tp>
00152 struct has_virtual_destructor;
00153
00154 template<typename _Tp>
00155 struct is_signed;
00156
00157 template<typename _Tp>
00158 struct is_unsigned;
00159
00160 template<typename _Tp>
00161 struct alignment_of;
00162
00163 template<typename _Tp>
00164 struct rank;
00165
00166 template<typename _Tp, unsigned _Uint = 0>
00167 struct extent;
00168
00170 template<typename _Tp, typename _Up>
00171 struct is_same;
00172
00173 template<typename _From, typename _To>
00174 struct is_convertible;
00175
00176 template<typename _Base, typename _Derived>
00177 struct is_base_of;
00178
00180 template<typename _Tp>
00181 struct remove_const;
00182
00183 template<typename _Tp>
00184 struct remove_volatile;
00185
00186 template<typename _Tp>
00187 struct remove_cv;
00188
00189 template<typename _Tp>
00190 struct add_const;
00191
00192 template<typename _Tp>
00193 struct add_volatile;
00194
00195 template<typename _Tp>
00196 struct add_cv;
00197
00199 template<typename _Tp>
00200 struct remove_reference;
00201
00202 template<typename _Tp>
00203 struct add_reference;
00204
00206 template<typename _Tp>
00207 struct remove_extent;
00208
00209 template<typename _Tp>
00210 struct remove_all_extents;
00211
00213 template<typename _Tp>
00214 struct remove_pointer;
00215
00216 template<typename _Tp>
00217 struct add_pointer;
00218
00220 template<std::size_t _Len, std::size_t _Align>
00221 struct aligned_storage;
00222 }
00223 }
00224
00225 #endif