//////////////////////////////////////
template <typename T>
+ struct is_signed :
+ ttis_or<
+ ttis_or<is_xchar<T>,is_xint<T> >,
+ ttis_or<is_xshort<T>,is_xlong<T> >
+ >
+ {};
+
+ //////////////////////////////////////
+
+ template <typename T>
+ struct is_unsigned :
+ ttis_or<
+ ttis_or<is_xuchar<T>,is_xuint<T> >,
+ ttis_or<is_xushort<T>,is_xulong<T> >
+ >
+ {};
+
+ //////////////////////////////////////
+
+ template <typename T>
struct is_real_number :
ttis_or<is_xfloat<T>,is_xdouble<T> >
{};