18 #ifndef _GLIBCXX_CSTDLIB
22 #define NOisnotYES() enum { No = !Yes }
27 template<
typename T>
class IsFundaT {
public:
enum {
Yes = 0,
No = 1 }; };
28 #define DECL_FUNDA_TYPE(t) template<> class IsFundaT<t> { public: enum { Yes = 1, No = 0 }; };
29 #define DECL_FUNDA_TYPE_SIGNED(t) DECL_FUNDA_TYPE(signed t); DECL_FUNDA_TYPE(unsigned t)
41 #undef DECL_FUNDA_TYPE_SIGNED
42 #undef DECL_FUNDA_TYPE
51 typedef struct {
char a[2]; }
no;
53 template<
typename U>
static yes
test(...);
54 template<
typename U>
static no test(
U (*)[1]);
55 enum {
Yes =
sizeof(test<T>(0)) ==
sizeof(yes) };
59 #define NO_FUNCTION_TYPE(t) class IsFunctionT<t> { public: enum { Yes = 0 }; NOisnotYES(); }
67 #undef NO_FUNCTION_TYPE
93 template<
typename T,
size_t N>
95 enum { IsPtrT = 0, IsRefT = 0, IsArrayT = 1, IsFuncT = 0, IsPtrMemT = 0 };
102 enum { IsPtrT = 0, IsRefT = 0, IsArrayT = 1, IsFuncT = 0, IsPtrMemT = 0 };
107 template<
typename T,
typename C>
109 enum { IsPtrT = 0, IsRefT = 0, IsArrayT = 0, IsFuncT = 0, IsPtrMemT = 1 };
117 enum { IsPtrT = 0, IsRefT = 0, IsArrayT = 0, IsFuncT = 1, IsPtrMemT = 0 };
122 template<
typename R,
typename P1>
124 enum { IsPtrT = 0, IsRefT = 0, IsArrayT = 0, IsFuncT = 1, IsPtrMemT = 0 };
129 template<
typename R,
typename P1>
131 enum { IsPtrT = 0, IsRefT = 0, IsArrayT = 0, IsFuncT = 1, IsPtrMemT = 0 };
146 template<
bool convert_possible>
class ConsumeUDC<void, convert_possible> {};
148 #define enum_check_SIGNED(t) char enum_check(signed t); char enum_check(unsigned t)
161 #undef enum_check_SIGNED
263 #error ttypes.h included twice
#define DECL_FUNDA_TYPE(t)
TypeOp< T >::BareT & RefBareT
CompountT< T >::BottomT BottomT
CompountT< T >::BottomT BottomT
#define DECL_FUNDA_TYPE_SIGNED(t)
#define enum_check_SIGNED(t)
CompountT< T >::BottomT BottomT
CompountT< T >::BottomT BottomT
CompountT< T >::BottomT BottomT
#define NO_FUNCTION_TYPE(t)