11 #ifndef LARDATA_RECOBASEPROXY_PROXYBASE_ASSNSNODEASTUPLE_H
12 #define LARDATA_RECOBASEPROXY_PROXYBASE_ASSNSNODEASTUPLE_H
15 #include "canvas/Persistency/Common/Assns.h"
16 #include "canvas/Persistency/Common/Ptr.h"
31 template <
typename L,
typename R,
typename D>
32 class tuple_element<0U, art::AssnsNode<L, R, D>> {
37 template <
typename L,
typename R,
typename D>
38 class tuple_element<1U, art::AssnsNode<L, R, D>> {
43 template <
typename L,
typename R,
typename D>
44 class tuple_element<2U, art::AssnsNode<L, R, D>> {
51 template< std::
size_t I,
typename L,
typename R,
typename D>
52 constexpr std::tuple_element_t<I, art::AssnsNode<L, R, D>>&
53 get( art::AssnsNode<L, R, D>& t ) noexcept;
55 template< std::
size_t I,
typename L,
typename R,
typename D>
56 constexpr std::tuple_element_t<I, art::AssnsNode<L, R, D>>&&
57 get( art::AssnsNode<L, R, D>&& t ) noexcept;
59 template< std::
size_t I,
typename L,
typename R,
typename D>
60 constexpr std::tuple_element_t<I, art::AssnsNode<L, R, D>>
const&
61 get(
const art::AssnsNode<L, R, D>& t ) noexcept;
63 template< std::
size_t I,
typename L,
typename R,
typename D>
64 constexpr std::tuple_element_t<I, art::AssnsNode<L, R, D>>
const&&
65 get(
const art::AssnsNode<L, R, D>&& t ) noexcept;
67 template<
class T,
typename L,
typename R,
typename D>
68 constexpr T&
get(art::AssnsNode<L, R, D>& t) noexcept;
70 template<
class T,
typename L,
typename R,
typename D>
71 constexpr T&&
get(art::AssnsNode<L, R, D>&& t) noexcept;
73 template<
class T,
typename L,
typename R,
typename D>
74 constexpr
const T&
get(
const art::AssnsNode<L, R, D>& t) noexcept;
76 template<
class T,
typename L,
typename R,
typename D>
77 constexpr
const T&&
get(
const art::AssnsNode<L, R, D>&& t) noexcept;
95 template <std::
size_t I,
typename L,
typename R,
typename D>
99 template <
typename L,
typename R,
typename D>
103 using Element_t = std::tuple_element_t<0U, AssnsNode_t>;
106 {
return node.first; }
109 {
return node.first; }
112 {
return std::move(node.first); }
115 {
return std::move(node.first); }
120 template <
typename L,
typename R,
typename D>
124 using Element_t = std::tuple_element_t<1U, AssnsNode_t>;
127 {
return node.second; }
130 {
return node.second; }
133 {
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>;
148 {
return node.data; }
151 {
return node.data; }
154 {
return std::move(node.data); }
157 {
return std::move(node.data); }
172 template< std::
size_t I,
typename L,
typename R,
typename D>
173 constexpr std::tuple_element_t<I, art::AssnsNode<L, R, D>>&
174 get(art::AssnsNode<L, R, D>& node) noexcept
177 template< std::
size_t I,
typename L,
typename R,
typename D>
178 constexpr std::tuple_element_t<I, art::AssnsNode<L, R, D>>&&
179 get(art::AssnsNode<L, R, D>&& node) noexcept
184 template< std::
size_t I,
typename L,
typename R,
typename D>
185 constexpr std::tuple_element_t<I, art::AssnsNode<L, R, D>>
const&
186 get(art::AssnsNode<L, R, D>
const& node) noexcept
189 template< std::
size_t I,
typename L,
typename R,
typename D>
190 constexpr std::tuple_element_t<I, art::AssnsNode<L, R, D>>
const&&
191 get(art::AssnsNode<L, R, D>
const&& node) noexcept
197 template<
class T,
typename L,
typename R,
typename D>
198 constexpr T&
get(art::AssnsNode<L, R, D>& t) noexcept;
200 template<
class T,
typename L,
typename R,
typename D>
201 constexpr T&&
get(art::AssnsNode<L, R, D>&& t) noexcept;
203 template<
class T,
typename L,
typename R,
typename D>
204 constexpr
const T&
get(
const art::AssnsNode<L, R, D>& t) noexcept;
206 template<
class T,
typename L,
typename R,
typename D>
207 constexpr
const T&&
get(
const art::AssnsNode<L, R, D>&& t) noexcept;
217 #endif // LARDATA_RECOBASEPROXY_PROXYBASE_ASSNSNODEASTUPLE_H
double std(const std::vector< short > &wf, const double ped_mean, size_t start, size_t nsample)
std::tuple_element_t< 1U, AssnsNode_t > Element_t
std::tuple_element_t< 0U, AssnsNode_t > Element_t
art::AssnsNode< L, R, D > AssnsNode_t
art::AssnsNode< L, R, D > AssnsNode_t
art::AssnsNode< L, R, D > AssnsNode_t
std::tuple_element_t< 2U, AssnsNode_t > Element_t