18 #ifndef _STLP_TYPE_MANIPS_H 19 #define _STLP_TYPE_MANIPS_H 26 #if defined (_STLP_USE_NAMESPACES) && !defined (_STLP_DONT_USE_PRIV_NAMESPACE) 28 using _STLP_STD::__true_type;
29 using _STLP_STD::__false_type;
45 template <
class __
bool_type>
55 template <
class _BoolType>
62 template <
class _P1,
class _P2>
69 template <
class _P1,
class _P2,
class _P3>
76 template <
class _P1,
class _P2>
83 template <
class _P1,
class _P2,
class _P3>
102 #if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) 103 # if defined (__BORLANDC__) 104 template <
class _CondT,
class _Tp1,
class _Tp2>
105 struct __selectT {
typedef _Tp1 _Ret; };
107 template <
class _Tp1,
class _Tp2>
108 struct __selectT<
__false_type, _Tp1, _Tp2> {
typedef _Tp2 _Ret; };
111 # if !defined (__BORLANDC__) || (__BORLANDC__ >= 0x590) 112 template <
bool _Cond,
class _Tp1,
class _Tp2>
115 template <
class _Tp1,
class _Tp2>
118 template <
bool _Cond,
class _Tp1,
class _Tp2>
120 {
typedef __selectT<typename __bool2type<_Cond>::_Ret, _Tp1, _Tp2>
::_Ret _Ret; };
125 # if defined (_STLP_MEMBER_TEMPLATE_CLASSES) 127 struct __select_aux {
128 template <
class _Tp1,
class _Tp2>
135 struct __select_aux<0> {
136 template <
class _Tp1,
class _Tp2>
142 template <
int _Cond,
class _Tp1,
class _Tp2>
148 template <
int _Cond,
class _Tp1,
class _Tp2>
160 #if !defined (_STLP_DONT_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS) && \ 161 (!defined (__GNUC__) || (__GNUC__ > 2)) 163 # if !defined (__BORLANDC__) 169 template <
class _Src,
class _Dst>
178 template <
class _Tp>
struct _IsUnQual;
179 template <
class _Src,
class _Dst>
182 typedef typename _IsUnQual<_Dst>::_Ret _Tr2;
188 template <
class _Src,
class _Dst>
202 template <
class _Src,
class _Dst>
208 template <
class _Tp1,
class _Tp2>
214 #if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) 222 #if !defined (_STLP_DONT_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS) 223 template <
class _Src,
class _Dst>
225 static char _Test(
bool, _Dst);
226 static char*
_Test(
bool, ...);
230 template <
class _Src,
class _Dst>
237 # if defined (__BORLANDC__) 238 # if (__BORLANDC__ < 0x590) 240 struct _UnConstPtr {
typedef _Tp _Type; };
243 struct _UnConstPtr<_Tp*> {
typedef _Tp _Type; };
246 struct _UnConstPtr<
const _Tp*> {
typedef _Tp _Type; };
249 # if !defined (_STLP_QUALIFIED_SPECIALIZATION_BUG) 257 # if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) && !defined (_STLP_QUALIFIED_SPECIALIZATION_BUG) 262 # if (__BORLANDC__ < 0x590) 271 typedef _IsConst<_Tp>::_Ret _Tr1;
272 typedef _IsVolatile<_Tp>::_Ret _Tr2;
278 # if !defined (_STLP_QUALIFIED_SPECIALIZATION_BUG) 279 template <
class _Tp>
struct _UnQual {
typedef _Tp _Type; };
280 template <
class _Tp>
struct _UnQual<
const _Tp> {
typedef _Tp _Type; };
281 template <
class _Tp>
struct _UnQual<
volatile _Tp> {
typedef _Tp _Type; };
282 template <
class _Tp>
struct _UnQual<
const volatile _Tp> {
typedef _Tp _Type; };
292 template <
class _Src,
class _Dst>
294 # if !defined (__BORLANDC__) || (__BORLANDC__ >= 0x590) 300 enum {
value = _Is1 ? 0 : _Is2 };
306 template <
class _Src,
class _Dst>
312 template <
class _Src,
class _Dst>
_NoVolatilePointerShim(const void *)
#define _STLP_MOVE_TO_PRIV_NAMESPACE
static char _Test(bool, _Dst)
__bool2type< _Ret >::_Ret _RetT
static _Dst * __null_dst()
#define _STLP_MOVE_TO_STD_NAMESPACE
__bool2type< value >::_Ret _Ret
static _Src _MakeSource()
char _STLP_CALL _IsCopyableFun(bool, _NoVolatilePointerShim, _Tp const *, _Tp *)
_Copyable< _Src, _Dst >::_RetT _Ret
_ConversionHelper< _Src *, const volatile _Dst * > _H
#define _STLP_TEMPLATE_NULL
#define _STLP_END_NAMESPACE
_ConversionHelper< _Src, _Dst > _H
static _Src * __null_src()
#define _STLP_BEGIN_NAMESPACE
__bool2type< value >::_Ret _Ret