4.4.0
|
|
Freundlich's C++ toolkit |
Some additional type traits. More...
Classes | |
struct | is_base_of |
Like std::is_base_of , but only works on complete types. More... | |
struct | is_string |
Tells if a type is a string. More... | |
struct | is_string< std::basic_string< Ch, Traits, Alloc > > |
Typedefs | |
template<typename Left , typename Right > | |
using | implication = std::disjunction< std::negation< Left >, Right > |
The implication function: Left -> Right. | |
template<typename Dest , typename Conv , typename Integral > | |
using | integral_cast = std::integral_constant< Dest, fcppt::type_traits::detail::integral_cast_value< Dest, Conv, Integral >::value > |
Does an integral cast on an integral constant. | |
template<typename Type > | |
using | is_integral_constant = typename fcppt::type_traits::detail::is_integral_constant< Type >::type |
Checks if a type is a std::integral_constant . | |
template<typename Iterator , typename Category > | |
using | is_iterator_of_category = fcppt::iterator::category_at_least< typename std::iterator_traits< Iterator >::iterator_category, Category > |
Checks if an iterator models a given category. | |
template<typename Type > | |
using | is_raw_pointer = typename fcppt::type_traits::detail::is_raw_pointer< Type >::type |
Checks if a pointer is a raw pointer type. | |
template<typename Type > | |
using | is_value = std::integral_constant< bool, !std::is_void< Type >::value &&!std::is_array< Type >::value &&!std::is_function< Type >::value &&!std::is_reference< Type >::value &&!std::is_const< Type >::value &&!std::is_volatile< Type >::value > |
Checks if the type behaves like a value type. | |
template<typename Type > | |
using | numeric_max = std::integral_constant< Type, std::numeric_limits< Type >::max()> |
Metafunction to compute the maximum value of a type. | |
template<typename DestType , typename Src > | |
using | safe_integral_cast = typename fcppt::type_traits::detail::safe_integral_cast< DestType, Src >::type |
Casts std::integral_constants and checks for truncation. | |
template<typename Type > | |
using | to_bool = fcppt::type_traits::integral_cast< bool, fcppt::cast::static_cast_fun, Type > |
Casts a std::integral_constant to bool. | |
template<typename Container > | |
using | value_type = typename Container::value_type |
The value type of a container. | |
Some additional type traits.
using fcppt::type_traits::implication = typedef std::disjunction<std::negation<Left>, Right> |
The implication function: Left -> Right.
Calculates the implication of Left and Right. Equal to (not Left) or Right)
Left | A boolean expression |
Right | A boolean expression |
using fcppt::type_traits::integral_cast = typedef std::integral_constant< Dest, fcppt::type_traits::detail::integral_cast_value<Dest, Conv, Integral>::value> |
Does an integral cast on an integral constant.
Casts Integral to an integral constant of type Dest. The cast is done using Conv from fcppt.casts.
Dest | An integral type to cast to |
Conv | A cast function from fcppt.casts |
Integral | A std::integral_constant to cast from |
using fcppt::type_traits::is_raw_pointer = typedef typename fcppt::type_traits::detail::is_raw_pointer<Type>::type |
Checks if a pointer is a raw pointer type.
A raw pointer is a (cv qualified) pointer to char
or to unsigned char
. Both can be used to read and write bytes.
Type | Must be a pointer type. |
using fcppt::type_traits::numeric_max = typedef std::integral_constant<Type, std::numeric_limits<Type>::max()> |
Metafunction to compute the maximum value of a type.
Type | Must be a type such that std::numeric_limits<Type>::max() is defined. |
using fcppt::type_traits::safe_integral_cast = typedef typename fcppt::type_traits::detail::safe_integral_cast<DestType, Src>::type |
Casts std::integral_constants and checks for truncation.
DestType | An integral type. |
Src | A std::integral_constant. |
using fcppt::type_traits::to_bool = typedef fcppt::type_traits::integral_cast<bool, fcppt::cast::static_cast_fun, Type> |
Casts a std::integral_constant to bool.
Type | A std::integral_constant. |