Public Types | Static Public Member Functions | List of all members
art::detail::get_helper< L, R, D > Struct Template Reference

#include <AssnsNode.h>

Public Types

using node_t = AssnsNode< L, R, D >
 
using first_type = typename node_t::first_type
 
using second_type = typename node_t::second_type
 

Static Public Member Functions

template<std::size_t I>
static std::enable_if_t<(I==0), tuple_element_t< I, node_t > const & > get_element (node_t const &r)
 
template<std::size_t I>
static std::enable_if_t<(I==1), tuple_element_t< I, node_t > const & > get_element (node_t const &r)
 
template<std::size_t I>
static std::enable_if_t<(I==2), tuple_element_t< I, node_t > const & > get_element (node_t const &r)
 
template<typename T >
static std::enable_if_t< std::is_same_v< T, first_type >, T const & > get_element (node_t const &r)
 
template<typename T >
static std::enable_if_t< std::is_same_v< T, second_type >, T const & > get_element (node_t const &r)
 
template<typename T >
static std::enable_if_t< std::is_same_v< T, D >, T const & > get_element (node_t const &r)
 

Detailed Description

template<typename L, typename R, typename D>
struct art::detail::get_helper< L, R, D >

Definition at line 62 of file AssnsNode.h.

Member Typedef Documentation

template<typename L , typename R , typename D >
using art::detail::get_helper< L, R, D >::first_type = typename node_t::first_type

Definition at line 64 of file AssnsNode.h.

template<typename L , typename R , typename D >
using art::detail::get_helper< L, R, D >::node_t = AssnsNode<L, R, D>

Definition at line 63 of file AssnsNode.h.

template<typename L , typename R , typename D >
using art::detail::get_helper< L, R, D >::second_type = typename node_t::second_type

Definition at line 65 of file AssnsNode.h.

Member Function Documentation

template<typename L , typename R , typename D >
template<std::size_t I>
static std::enable_if_t<(I == 0), tuple_element_t<I, node_t> const&> art::detail::get_helper< L, R, D >::get_element ( node_t const &  r)
inlinestatic

Definition at line 70 of file AssnsNode.h.

71  {
72  return r.first;
73  }
template<typename L , typename R , typename D >
template<std::size_t I>
static std::enable_if_t<(I == 1), tuple_element_t<I, node_t> const&> art::detail::get_helper< L, R, D >::get_element ( node_t const &  r)
inlinestatic

Definition at line 77 of file AssnsNode.h.

78  {
79  return r.second;
80  }
template<typename L , typename R , typename D >
template<std::size_t I>
static std::enable_if_t<(I == 2), tuple_element_t<I, node_t> const&> art::detail::get_helper< L, R, D >::get_element ( node_t const &  r)
inlinestatic

Definition at line 84 of file AssnsNode.h.

85  {
86  return *r.data;
87  }
template<typename L , typename R , typename D >
template<typename T >
static std::enable_if_t<std::is_same_v<T, first_type>, T const&> art::detail::get_helper< L, R, D >::get_element ( node_t const &  r)
inlinestatic

Definition at line 92 of file AssnsNode.h.

93  {
94  return r.first;
95  }
template<typename L , typename R , typename D >
template<typename T >
static std::enable_if_t<std::is_same_v<T, second_type>, T const&> art::detail::get_helper< L, R, D >::get_element ( node_t const &  r)
inlinestatic

Definition at line 99 of file AssnsNode.h.

100  {
101  return r.second;
102  }
template<typename L , typename R , typename D >
template<typename T >
static std::enable_if_t<std::is_same_v<T, D>, T const&> art::detail::get_helper< L, R, D >::get_element ( node_t const &  r)
inlinestatic

Definition at line 106 of file AssnsNode.h.

107  {
108  return *r.data;
109  }

The documentation for this struct was generated from the following file: