45 template <
typename T1,
typename T2 >
53 template <
typename T >
54 class TypePromotion< T, T >
61 #define CREATEPROMOTION( T1, T2, ResultType ) \
63 class TypePromotion< T1, T2 > \
66 typedef ResultType Result; \
70 class TypePromotion< T2, T1 > \
73 typedef ResultType Result; \
83 CREATEPROMOTION(
double,
float,
double )
84 CREATEPROMOTION(
double, int64_t,
double )
85 CREATEPROMOTION(
double, int32_t,
double )
86 CREATEPROMOTION(
double, int16_t,
double )
87 CREATEPROMOTION(
double, int8_t,
double )
88 CREATEPROMOTION(
double, uint64_t,
double )
89 CREATEPROMOTION(
double, uint32_t,
double )
90 CREATEPROMOTION(
double, uint16_t,
double )
91 CREATEPROMOTION(
double, uint8_t,
double )
94 CREATEPROMOTION(
float, int64_t,
float )
95 CREATEPROMOTION(
float, int32_t,
float )
96 CREATEPROMOTION(
float, int16_t,
float )
97 CREATEPROMOTION(
float, int8_t,
float )
98 CREATEPROMOTION(
float, uint64_t,
float )
99 CREATEPROMOTION(
float, uint32_t,
float )
100 CREATEPROMOTION(
float, uint16_t,
float )
101 CREATEPROMOTION(
float, uint8_t,
float )
104 CREATEPROMOTION( int64_t, int32_t, int64_t )
105 CREATEPROMOTION( int64_t, int16_t, int64_t )
106 CREATEPROMOTION( int64_t, int8_t, int64_t )
107 CREATEPROMOTION( int64_t, uint64_t,
double )
108 CREATEPROMOTION( int64_t, uint32_t, int64_t )
109 CREATEPROMOTION( int64_t, uint16_t, int64_t )
110 CREATEPROMOTION( int64_t, uint8_t, int64_t )
113 CREATEPROMOTION( int32_t, int16_t, int32_t )
114 CREATEPROMOTION( int32_t, int8_t, int32_t )
115 CREATEPROMOTION( int32_t, uint64_t,
double )
116 CREATEPROMOTION( int32_t, uint32_t, int64_t )
117 CREATEPROMOTION( int32_t, uint16_t, int32_t )
118 CREATEPROMOTION( int32_t, uint8_t, int32_t )
121 CREATEPROMOTION( int16_t, int8_t, int16_t )
122 CREATEPROMOTION( int16_t, uint64_t,
double )
123 CREATEPROMOTION( int16_t, uint32_t, int64_t )
124 CREATEPROMOTION( int16_t, uint16_t, int32_t )
125 CREATEPROMOTION( int16_t, uint8_t, int16_t )
128 CREATEPROMOTION( int8_t, uint64_t,
double )
129 CREATEPROMOTION( int8_t, uint32_t, int64_t )
130 CREATEPROMOTION( int8_t, uint16_t, int32_t )
131 CREATEPROMOTION( int8_t, uint8_t, int16_t )
134 CREATEPROMOTION( uint64_t, uint32_t, uint64_t )
135 CREATEPROMOTION( uint64_t, uint16_t, uint64_t )
136 CREATEPROMOTION( uint64_t, uint8_t, uint64_t )
139 CREATEPROMOTION( uint32_t, uint16_t, uint32_t )
140 CREATEPROMOTION( uint32_t, uint8_t, uint32_t )
143 CREATEPROMOTION( uint16_t, uint8_t, uint16_t )
152 #endif // WTYPETRAITS_H