Sequoia
Loading...
Searching...
No Matches
Classes | Typedefs | Functions | Variables
TypeTraits.hpp File Reference

Traits which are sufficiently general to appear in the sequoia namespace. More...

#include <array>
#include <concepts>
#include <iterator>
#include <type_traits>
#include <tuple>
#include <utility>
#include <variant>

Go to the source code of this file.

Classes

struct  sequoia::dependent_false< T >
 Standard meta-programming utility. More...
 
struct  sequoia::resolve_to_copy< T, Args >
 class template for determining whether a constructor template should resolve to the copy constructor More...
 
struct  sequoia::is_const_pointer< T >
 Primary class template for determining if a type is a const pointer. More...
 
struct  sequoia::is_const_pointer< const T * >
 
struct  sequoia::is_const_pointer< const T *volatile >
 
struct  sequoia::is_const_pointer< const T *const >
 
struct  sequoia::is_const_pointer< const T *const volatile >
 
struct  sequoia::is_const_reference< T >
 class template for determining if a type is a const reference More...
 
struct  sequoia::is_tuple< T >
 Primary class template for determining if a type is a std::tuple More...
 
struct  sequoia::is_tuple< std::tuple< Ts... > >
 
struct  sequoia::is_initializable< T, Args >
 Primary class template for determining if a type can be brace-initialized by Args... `. More...
 
struct  sequoia::is_initializable< T, Args... >
 
struct  sequoia::has_allocator_type< T >
 Class template for determining if a type defines a nested type allocator_type More...
 
struct  sequoia::heterogeneous_deep_equality< T< Ts... > >
 
struct  sequoia::is_deep_equality_comparable< T >
 
struct  sequoia::is_deep_equality_comparable< T >
 
struct  sequoia::is_deep_equality_comparable< T< Ts... > >
 
struct  sequoia::is_compatible< T, U >
 class template for determining if a type is compatible with a floating-point type. More...
 

Typedefs

template<class T , class... Args>
using sequoia::resolve_to_copy_t = typename resolve_to_copy< T, Args... >::type
 
template<class T >
using sequoia::is_const_pointer_t = typename is_const_pointer< T >::type
 
template<class T >
using sequoia::is_const_reference_t = typename is_const_reference< T >::type
 
template<class... Ts>
using sequoia::is_tuple_t = typename is_tuple< Ts... >::type
 
template<class T , class... Args>
using sequoia::is_initializable_t = typename is_initializable< T, Args... >::type
 
template<class T >
using sequoia::has_allocator_type_t = typename has_allocator_type< T >::type
 
template<class T >
using sequoia::is_deep_equality_comparable_t = typename is_deep_equality_comparable< T >::type
 
template<std::floating_point T, class U >
using sequoia::is_compatible_t = typename is_compatible< T, U >::type
 

Functions

template<class T , std::size_t... I>
constexpr bool sequoia::has_heterogeneous_deep_equality (std::index_sequence< I... >)
 

Variables

template<class T , class... Args>
constexpr bool sequoia::resolve_to_copy_v {resolve_to_copy<T, Args...>::value}
 
template<class T >
constexpr bool sequoia::is_const_pointer_v {is_const_pointer<T>::value}
 
template<class T >
constexpr bool sequoia::is_const_reference_v {is_const_reference<T>::value}
 
template<class... Ts>
constexpr bool sequoia::is_tuple_v {is_tuple<Ts...>::value}
 
template<class T , class... Args>
constexpr bool sequoia::is_initializable_v {is_initializable<T, Args...>::value}
 
template<class T >
constexpr bool sequoia::has_allocator_type_v {has_allocator_type<T>::value}
 
template<class T >
constexpr bool sequoia::has_value_type_v {requires { typename T::value_type; }}
 Checks for dependent type value_type
 
template<class T >
constexpr bool sequoia::has_element_type_v {requires { typename T::element_type; }}
 Checks for dependent type element_type
 
template<class T >
constexpr bool sequoia::has_gettable_elements {requires (T & t) { std::get<0>(t); }}
 
template<class T , std::size_t... I>
constexpr bool sequoia::heterogeneous_deep_equality_v
 
template<class T >
constexpr bool sequoia::is_deep_equality_comparable_v {is_deep_equality_comparable<T>::value}
 
template<std::floating_point T, class U >
constexpr bool sequoia::is_compatible_v {is_compatible<T, U>::value}
 

Detailed Description

Traits which are sufficiently general to appear in the sequoia namespace.