11 #ifndef LARDATA_RECOBASEPROXY_PROXYBASE_ASSNSNODEASTUPLE_H 12 #define LARDATA_RECOBASEPROXY_PROXYBASE_ASSNSNODEASTUPLE_H 30 template <
typename L,
typename R,
typename D>
31 class tuple_element<0U,
art::AssnsNode<L, R, D>> {
36 template <
typename L,
typename R,
typename D>
37 class tuple_element<1U,
art::AssnsNode<L, R, D>> {
42 template <
typename L,
typename R,
typename D>
43 class tuple_element<2U,
art::AssnsNode<L, R, D>> {
49 template <std::
size_t I,
typename L,
typename R,
typename D>
50 constexpr std::tuple_element_t<I, art::AssnsNode<L, R, D>>&
get(
53 template <std::
size_t I,
typename L,
typename R,
typename D>
54 constexpr std::tuple_element_t<I, art::AssnsNode<L, R, D>>&&
get(
57 template <std::
size_t I,
typename L,
typename R,
typename D>
58 constexpr std::tuple_element_t<I, art::AssnsNode<L, R, D>>
const&
get(
61 template <std::
size_t I,
typename L,
typename R,
typename D>
62 constexpr std::tuple_element_t<I, art::AssnsNode<L, R, D>>
const&&
get(
65 template <
class T,
typename L,
typename R,
typename D>
68 template <
class T,
typename L,
typename R,
typename D>
71 template <
class T,
typename L,
typename R,
typename D>
74 template <
class T,
typename L,
typename R,
typename D>
91 template <std::
size_t I,
typename L,
typename R,
typename D>
94 template <
typename L,
typename R,
typename D>
98 using Element_t = std::tuple_element_t<0U, AssnsNode_t>;
106 return std::move(node.first);
111 return std::move(node.first);
116 template <
typename L,
typename R,
typename D>
120 using Element_t = std::tuple_element_t<1U, AssnsNode_t>;
131 return std::move(node.second);
136 return std::move(node.second);
141 template <
typename L,
typename R,
typename D>
145 using Element_t = std::tuple_element_t<2U, AssnsNode_t>;
155 return std::move(node.data);
169 template <std::
size_t I,
typename L,
typename R,
typename D>
170 constexpr std::tuple_element_t<I, art::AssnsNode<L, R, D>>&
get(
176 template <std::
size_t I,
typename L,
typename R,
typename D>
177 constexpr std::tuple_element_t<I, art::AssnsNode<L, R, D>>&&
get(
183 template <std::
size_t I,
typename L,
typename R,
typename D>
184 constexpr std::tuple_element_t<I, art::AssnsNode<L, R, D>>
const&
get(
190 template <std::
size_t I,
typename L,
typename R,
typename D>
191 constexpr std::tuple_element_t<I, art::AssnsNode<L, R, D>>
const&&
get(
198 template <
class T,
typename L,
typename R,
typename D>
201 template <
class T,
typename L,
typename R,
typename D>
204 template <
class T,
typename L,
typename R,
typename D>
207 template <
class T,
typename L,
typename R,
typename D>
216 #endif // LARDATA_RECOBASEPROXY_PROXYBASE_ASSNSNODEASTUPLE_H
Namespace for general, non-LArSoft-specific utilities.
std::tuple_element_t< 1U, AssnsNode_t > Element_t
std::tuple_element_t< 0U, AssnsNode_t > Element_t
std::tuple_element_t< 2U, AssnsNode_t > Element_t