Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
boost::detail::make_signed_imp< T > Struct Template Reference

#include <make_signed.hpp>

Public Types

typedef remove_cv< T >::type t_no_cv
 
typedef mpl::if_c
< (::boost::type_traits::ice_and
< ::boost::is_signed< T >
::value,::boost::is_integral
< T >::value,::boost::type_traits::ice_not
< ::boost::is_same< t_no_cv,
char >::value >::value,::boost::type_traits::ice_not
< ::boost::is_same< t_no_cv,
wchar_t >::value >::value,::boost::type_traits::ice_not
< ::boost::is_same< t_no_cv,
bool >::value >::value >
::value), T, typename
mpl::if_c
< (::boost::type_traits::ice_and
< ::boost::is_integral< T >
::value,::boost::type_traits::ice_not
< ::boost::is_same< t_no_cv,
char >::value >::value,::boost::type_traits::ice_not
< ::boost::is_same< t_no_cv,
wchar_t >::value >::value,::boost::type_traits::ice_not
< ::boost::is_same< t_no_cv,
bool >::value >::value >
::value), typename mpl::if_
< is_same< t_no_cv, unsigned
char >, signed char, typename
mpl::if_< is_same< t_no_cv,
unsigned short >, signed short,
typename mpl::if_< is_same
< t_no_cv, unsigned int >, int,
typename mpl::if_< is_same
< t_no_cv, unsigned long >
, long, long >::type >::type >
::type >::type, typename
mpl::if_c< sizeof(t_no_cv)==sizeof(unsigned
char), signed char, typename
mpl::if_c< sizeof(t_no_cv)==sizeof(unsigned
short), signed short, typename
mpl::if_c< sizeof(t_no_cv)==sizeof(unsigned
int), int, typename mpl::if_c
< sizeof(t_no_cv)==sizeof(unsigned
long), long, long >::type >
::type >::type >::type >::type >
::type 
base_integer_type
 
typedef mpl::if_< is_const< T >
, typename add_const
< base_integer_type >::type,
base_integer_type >::type 
const_base_integer_type
 
typedef mpl::if_< is_volatile
< T >, typename add_volatile
< const_base_integer_type >
::type,
const_base_integer_type >
::type 
type
 

Public Member Functions

 BOOST_STATIC_ASSERT ((::boost::type_traits::ice_or< ::boost::is_integral< T >::value,::boost::is_enum< T >::value >::value))
 
 BOOST_STATIC_ASSERT ((::boost::type_traits::ice_not< ::boost::is_same< typename remove_cv< T >::type, bool >::value >::value))
 

Member Typedef Documentation

template<class T >
typedef mpl::if_c< (::boost::type_traits::ice_and< ::boost::is_signed<T>::value, ::boost::is_integral<T>::value, ::boost::type_traits::ice_not< ::boost::is_same<t_no_cv, char>::value>::value, ::boost::type_traits::ice_not< ::boost::is_same<t_no_cv, wchar_t>::value>::value, ::boost::type_traits::ice_not< ::boost::is_same<t_no_cv, bool>::value>::value >::value), T, typename mpl::if_c< (::boost::type_traits::ice_and< ::boost::is_integral<T>::value, ::boost::type_traits::ice_not< ::boost::is_same<t_no_cv, char>::value>::value, ::boost::type_traits::ice_not< ::boost::is_same<t_no_cv, wchar_t>::value>::value, ::boost::type_traits::ice_not< ::boost::is_same<t_no_cv, bool>::value>::value>::value), typename mpl::if_< is_same<t_no_cv, unsigned char>, signed char, typename mpl::if_< is_same<t_no_cv, unsigned short>, signed short, typename mpl::if_< is_same<t_no_cv, unsigned int>, int, typename mpl::if_< is_same<t_no_cv, unsigned long>, long, long >::type >::type >::type >::type, typename mpl::if_c< sizeof(t_no_cv) == sizeof(unsigned char), signed char, typename mpl::if_c< sizeof(t_no_cv) == sizeof(unsigned short), signed short, typename mpl::if_c< sizeof(t_no_cv) == sizeof(unsigned int), int, typename mpl::if_c< sizeof(t_no_cv) == sizeof(unsigned long), long, long >::type >::type >::type >::type >::type >::type boost::detail::make_signed_imp< T >::base_integer_type
template<class T >
typedef mpl::if_< is_const<T>, typename add_const<base_integer_type>::type, base_integer_type >::type boost::detail::make_signed_imp< T >::const_base_integer_type
template<class T >
typedef remove_cv<T>::type boost::detail::make_signed_imp< T >::t_no_cv
template<class T >
typedef mpl::if_< is_volatile<T>, typename add_volatile<const_base_integer_type>::type, const_base_integer_type >::type boost::detail::make_signed_imp< T >::type

Member Function Documentation

template<class T >
boost::detail::make_signed_imp< T >::BOOST_STATIC_ASSERT ( (::boost::type_traits::ice_or< ::boost::is_integral< T >::value,::boost::is_enum< T >::value >::value)  )
template<class T >
boost::detail::make_signed_imp< T >::BOOST_STATIC_ASSERT ( (::boost::type_traits::ice_not< ::boost::is_same< typename remove_cv< T >::type, bool >::value >::value)  )

The documentation for this struct was generated from the following file: