Tatooine
Classes | Namespaces | Typedefs | Functions | Variables
type_traits.h File Reference

Go to the source code of this file.

Classes

struct  tatooine::is_array_impl< T >
 
struct  tatooine::is_array_impl< std::array< T, N > >
 
struct  tatooine::is_same_impl< T0, T1, T2, Ts... >
 
struct  tatooine::is_same_impl< T0, T1 >
 
struct  tatooine::is_same_impl< T0 >
 
struct  tatooine::is_complex_impl< T >
 
struct  tatooine::is_complex_impl< std::complex< T > >
 
struct  tatooine::is_range_impl< T, typename >
 
struct  tatooine::is_range_impl< T, void_t< decltype(std::declval< T >().begin()), decltype(std::declval< T >().end())> >
 
struct  tatooine::is_indexable_impl< T, typename >
 
struct  tatooine::is_indexable_impl< T, void_t< decltype(std::declval< T >().at(size_t{})), decltype(std::declval< T >()[size_t{}])> >
 
struct  tatooine::is_dereferencable_impl< T, typename >
 
struct  tatooine::is_dereferencable_impl< T * >
 
struct  tatooine::is_dereferencable_impl< T, void_t< decltype(*std::declval< T >())> >
 
struct  tatooine::is_post_incrementable_impl< T, typename >
 
struct  tatooine::is_post_incrementable_impl< T, void_t< decltype(std::declval< T >()++)> >
 
struct  tatooine::is_post_incrementable_impl< T * >
 
struct  tatooine::is_post_incrementable_impl< T const * >
 
struct  tatooine::is_pre_incrementable_impl< T, typename >
 
struct  tatooine::is_pre_incrementable_impl< T, void_t< decltype(++std::declval< T >())> >
 
struct  tatooine::is_pre_incrementable_impl< T * >
 
struct  tatooine::is_pre_incrementable_impl< T const * >
 
struct  tatooine::is_post_decrementable_impl< T, typename >
 
struct  tatooine::is_post_decrementable_impl< T, void_t< decltype(std::declval< T >() --)> >
 
struct  tatooine::is_post_decrementable_impl< T * >
 
struct  tatooine::is_post_decrementable_impl< T const * >
 
struct  tatooine::is_pre_decrementable_impl< T, typename >
 
struct  tatooine::is_pre_decrementable_impl< T, void_t< decltype(--std::declval< T >())> >
 
struct  tatooine::is_pre_decrementable_impl< T * >
 
struct  tatooine::is_pre_decrementable_impl< T const * >
 
struct  tatooine::are_equality_comparable_impl< T, S, typename >
 
struct  tatooine::are_equality_comparable_impl< T, S, void_t< decltype(std::declval< T >()==std::declval< S >())> >
 
struct  tatooine::value_type_impl< T >
 
struct  tatooine::is_pair_impl< T >
 
struct  tatooine::is_pair_impl< std::pair< First, Second > >
 

Namespaces

namespace  tatooine
 

Typedefs

template<typename T >
using tatooine::value_type = typename value_type_impl< T >::type
 

Functions

template<typename T , std::size_t = sizeof(T)>
auto tatooine::type_exists_impl (T *) -> std::true_type
 
auto tatooine::type_exists_impl (...) -> std::false_type
 

Variables

template<typename T >
static constexpr auto tatooine::type_exists
 
template<typename T >
static constexpr auto tatooine::is_pointer = std::is_pointer<T>::value
 
template<typename T >
static auto constexpr tatooine::is_array = is_array_impl<T>::value
 
template<typename... Ts>
static constexpr auto tatooine::is_same = is_same_impl<Ts...>::value
 
template<typename... Ts>
static constexpr auto tatooine::is_void = (is_same<Ts, void> && ...)
 
template<typename... Ts>
static constexpr auto tatooine::is_float = (is_same<Ts, float> && ...)
 
template<typename... Ts>
static constexpr auto tatooine::is_double = (is_same<Ts, double> && ...)
 
template<typename... Ts>
static constexpr auto tatooine::is_int = (is_same<Ts, int> && ...)
 
template<typename... Ts>
static constexpr auto tatooine::is_size_t = (is_same<Ts, size_t> && ...)
 
template<typename Query , typename... Others>
static constexpr auto tatooine::is_either_of = (is_same<Query, Others> || ...)
 
template<typename F , typename... Args>
static constexpr auto tatooine::is_invocable = std::is_invocable<F, Args...>::value
 
template<typename R , typename F , typename... Args>
static constexpr auto tatooine::is_invocable_r = std::is_invocable<R, F, Args...>::value
 
template<typename F , typename... Ts>
static constexpr auto tatooine::is_predicate
 
template<typename... Ts>
static constexpr auto tatooine::is_floating_point
 
template<typename... Ts>
static constexpr auto tatooine::is_arithmetic = (std::is_arithmetic<Ts>::value && ...)
 
template<typename... Ts>
static constexpr auto tatooine::is_integral = (std::is_integral<Ts>::value && ...)
 
template<typename... Ts>
static constexpr auto tatooine::is_const = (std::is_const<Ts>::value && ...)
 
template<typename... Ts>
static constexpr auto tatooine::is_non_const = (!std::is_const<Ts>::value && ...)
 
template<typename... Ts>
static constexpr auto tatooine::is_signed = (std::is_signed<Ts>::value && ...)
 
template<typename... Ts>
static constexpr auto tatooine::is_unsigned = (std::is_unsigned<Ts>::value && ...)
 
template<typename... Ts>
static constexpr auto tatooine::is_signed_integral
 
template<typename... Ts>
static constexpr auto tatooine::is_unsigned_integral
 
template<typename From , typename To >
static constexpr auto tatooine::is_convertible = std::is_convertible<From, To>::value
 
template<typename From >
static constexpr auto tatooine::is_convertible_to_integral
 
template<typename From >
static constexpr auto tatooine::is_convertible_to_floating_point
 
template<typename... Ts>
static constexpr auto tatooine::is_complex = (is_complex_impl<Ts>::value && ...)
 
template<typename... Ts>
static constexpr auto tatooine::is_arithmetic_or_complex
 
template<typename... Ts>
static constexpr auto tatooine::is_range = (is_range_impl<Ts>::value && ...)
 
template<typename... Ts>
static constexpr auto tatooine::is_indexable = (is_indexable_impl<Ts>::value && ...)
 
template<typename... Ts>
static constexpr auto tatooine::is_dereferencable
 
template<typename... Ts>
static constexpr auto tatooine::is_post_incrementable
 
template<typename T >
static constexpr auto tatooine::is_pre_incrementable
 
template<typename T >
static constexpr auto tatooine::is_post_decrementable
 
template<typename T >
static constexpr auto tatooine::is_pre_decrementable
 
template<typename T , typename S >
static constexpr auto tatooine::are_equality_comparable
 
template<typename T >
static constexpr auto tatooine::is_forward_iterator
 
template<typename T >
static constexpr auto tatooine::is_backward_iterator
 
template<typename T >
static constexpr auto tatooine::is_bidirectional_iterator
 
template<typename T >
static constexpr auto tatooine::is_pair = is_pair_impl<T>::value