Dash Core Source Documentation (0.16.0.1)

Find detailed information regarding the Dash Core source code.

type_traits.hpp File Reference
#include <algorithm>
#include <iterator>
#include <memory>
#include <type_traits>
#include <utility>
+ Include dependency graph for type_traits.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  immer::detail::make_void< Ts >
 
struct  immer::detail::is_dereferenceable< T, typename >
 
struct  immer::detail::is_dereferenceable< T, void_t< decltype(*(std::declval< T & >()))> >
 
struct  immer::detail::is_equality_comparable< T, U, typename >
 
struct  immer::detail::is_equality_comparable< T, U, std::enable_if_t< std::is_same< bool, decltype(std::declval< T & >()==std::declval< U & >())>::value > >
 
struct  immer::detail::is_inequality_comparable< T, U, typename >
 
struct  immer::detail::is_inequality_comparable< T, U, std::enable_if_t< std::is_same< bool, decltype(std::declval< T & >() !=std::declval< U & >())>::value > >
 
struct  immer::detail::is_preincrementable< T, typename >
 
struct  immer::detail::is_preincrementable< T, std::enable_if_t< std::is_same< T &, decltype(++(std::declval< T & >()))>::value > >
 
struct  immer::detail::is_subtractable< T, U, typename >
 
struct  immer::detail::is_subtractable< T, U, void_t< decltype(std::declval< T & >() - std::declval< U & >())> >
 
struct  immer::detail::swappable::with< T, U, typename >
 
struct  immer::detail::swappable::with< T, U, void_t< decltype(swap(std::declval< T & >(), std::declval< U & >())), decltype(swap(std::declval< U & >(), std::declval< T & >()))> >
 
struct  immer::detail::is_iterator< T, typename >
 
struct  immer::detail::is_iterator< T, void_t< std::enable_if_t< is_preincrementable_v< T > &&is_dereferenceable_v< T > &&std::is_copy_constructible< T >::value &&std::is_copy_assignable< T >::value &&std::is_destructible< T >::value &&is_swappable_v< T > >, typename std::iterator_traits< T >::value_type, typename std::iterator_traits< T >::difference_type, typename std::iterator_traits< T >::reference, typename std::iterator_traits< T >::pointer, typename std::iterator_traits< T >::iterator_category > >
 
struct  immer::detail::compatible_sentinel< T, U, typename >
 
struct  immer::detail::compatible_sentinel< T, U, std::enable_if_t< is_iterator_v< T > &&is_equality_comparable_v< T, U > &&is_inequality_comparable_v< T, U > > >
 
struct  immer::detail::is_forward_iterator< T, typename >
 
struct  immer::detail::is_forward_iterator< T, std::enable_if_t< is_iterator_v< T > &&std::is_base_of< std::forward_iterator_tag, typename std::iterator_traits< T >::iterator_category >::value > >
 
struct  immer::detail::std_distance_supports< T, U, typename >
 
struct  immer::detail::std_distance_supports< T, U, void_t< decltype(std::distance(std::declval< T >(), std::declval< U >()))> >
 
struct  immer::detail::std_uninitialized_copy_supports< T, U, V, typename >
 
struct  immer::detail::std_uninitialized_copy_supports< T, U, V, void_t< decltype(std::uninitialized_copy(std::declval< T >(), std::declval< U >(), std::declval< V >()))> >
 

Namespaces

 immer
 
 immer::detail
 
 immer::detail::swappable
 

Typedefs

template<typename... Ts>
using immer::detail::void_t = typename make_void< Ts... >::type
 
template<typename T , typename U >
using immer::detail::is_swappable_with = swappable::with< T, U >
 
template<typename T >
using immer::detail::is_swappable = is_swappable_with< T, T >
 

Variables

template<typename T >
constexpr bool immer::detail::is_dereferenceable_v = is_dereferenceable<T>::value
 
template<typename T , typename U = T>
constexpr bool immer::detail::is_equality_comparable_v = is_equality_comparable<T, U>::value
 
template<typename T , typename U = T>
constexpr bool immer::detail::is_inequality_comparable_v
 
template<typename T >
constexpr bool immer::detail::is_preincrementable_v = is_preincrementable<T>::value
 
template<typename T , typename U = T>
constexpr bool immer::detail::is_subtractable_v = is_subtractable<T, U>::value
 
template<typename T >
constexpr bool immer::detail::is_swappable_v = is_swappable_with<T&, T&>::value
 
template<typename T >
constexpr bool immer::detail::is_iterator_v = is_iterator<T>::value
 
template<typename T , typename U >
constexpr bool immer::detail::compatible_sentinel_v = compatible_sentinel<T,U>::value
 
template<typename T >
constexpr bool immer::detail::is_forward_iterator_v = is_forward_iterator<T>::value
 
template<typename T , typename U >
constexpr bool immer::detail::std_distance_supports_v = std_distance_supports<T, U>::value
 
template<typename T , typename U , typename V >
constexpr bool immer::detail::std_uninitialized_copy_supports_v
 
Released under the MIT license