4.6.0
Freundlich's C++ toolkit
|
Some additional type traits.
Classes | |
struct | fcppt::type_traits::is_base_of< Base, Derived > |
Like std::is_base_of , but only works on complete types. More... | |
struct | fcppt::type_traits::is_string< Type > |
Tells if a type is a string. More... | |
Typedefs | |
template<typename Left , typename Right > | |
using | fcppt::type_traits::implication = std::disjunction<std::negation<Left>, Right> |
The implication function: Left -> Right. | |
template<typename Dest , typename Conv , typename Integral > | |
using | fcppt::type_traits::integral_cast |
Does an integral cast on an integral constant. | |
template<typename Type > | |
using | fcppt::type_traits::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 | fcppt::type_traits::is_iterator_of_category |
Checks if an iterator models a given category. | |
template<typename Type > | |
using | fcppt::type_traits::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 | fcppt::type_traits::is_value |
Checks if the type behaves like a value type. | |
template<typename Type > | |
using | fcppt::type_traits::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 | fcppt::type_traits::safe_integral_cast |
Casts std::integral_constants and checks for truncation. | |
template<typename Type > | |
using | fcppt::type_traits::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 | fcppt::type_traits::value_type = typename Container::value_type |
The value type of a container. | |
Variables | |
template<typename Left , typename Right > | |
constexpr bool | fcppt::type_traits::implication_v = fcppt::type_traits::implication<Left, Right>::value |
The implication function: Left -> Right. | |
template<typename Iterator , typename Category > | |
constexpr bool | fcppt::type_traits::is_iterator_of_category_v |
Checks if an iterator models a given category. | |
using fcppt::type_traits::implication = 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 |
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_integral_constant = typename fcppt::type_traits::detail::is_integral_constant<Type>::type |
Checks if a type is a std::integral_constant
.
using fcppt::type_traits::is_iterator_of_category |
Checks if an iterator models a given category.
Checks if Iterator models the iterator category Category. For example, a random access iterator also models a bidrectional iterator.
Iterator | Must be an iterator type |
Category | Must be an iterator category |
using fcppt::type_traits::is_raw_pointer = 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::is_value |
Checks if the type behaves like a value type.
A type is a value type if it is not cv-qualified, it is not void, not an array, not a function and not a reference. In essence, value types behave normally regarding copying, moving and assignment.
using fcppt::type_traits::numeric_max = 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 |
Casts std::integral_constants and checks for truncation.
DestType | An integral type. |
Src | A std::integral_constant. |
using fcppt::type_traits::to_bool = fcppt::type_traits::integral_cast<bool, fcppt::cast::static_cast_fun, Type> |
Casts a std::integral_constant to bool.
Type | A std::integral_constant. |
using fcppt::type_traits::value_type = typename Container::value_type |
The value type of a container.
|
inlineconstexpr |
The implication function: Left -> Right.
|
inlineconstexpr |
Checks if an iterator models a given category.