18 #include <type_traits> 27 = std::decay_t<decltype(std::declval<PlainAssns>().
begin())>;
29 = std::decay_t<decltype(std::declval<MetaAssns>().
begin())>;
33 = std::decay_t<decltype(*(std::declval<PlainAssnsIter>()))>;
35 = std::decay_t<decltype(*(std::declval<MetaAssnsIter>()))>;
43 "assns_metadata_type<PlainAssns> should have been void! " 47 "assns_metadata_type<PlainAssns> node should have been void! " 51 "assns_metadata_type<MetaAssns> should have been char! " 55 "assns_metadata_type<MetaAssns> node should have been char! " 63 "assns_metadata_type_t<PlainAssns> should have been void! " 67 "assns_metadata_type_t<PlainAssns> node should have been void! " 71 "assns_metadata_type_t<MetaAssns> should have been char! " 75 "assns_metadata_type_t<MetaAssns> node should have been char! " 84 "assns_has_metadata<PlainAssns> should have been false! " 88 "assns_has_metadata<PlainAssns> node should have been false! " 92 "assns_has_metadata<MetaAssns> should have been true! " 96 "assns_has_metadata<MetaAssns> node should have been true! " 103 !lar::util::assns_has_metadata_v<PlainAssns>,
104 "assns_has_metadata<PlainAssns> should have been false! " 107 !lar::util::assns_has_metadata_v<PlainAssnsNode>,
108 "assns_has_metadata<PlainAssns> node should have been false! " 111 lar::util::assns_has_metadata_v<MetaAssns>,
112 "assns_has_metadata<MetaAssns> should have been true! " 115 lar::util::assns_has_metadata_v<MetaAssnsNode>,
116 "assns_has_metadata<MetaAssns> node should have been true! " 125 std::is_same<PlainAssnsTraits::left_t, int>(),
126 "left element of PlainAssns should have been `int`!" 129 std::is_same<PlainAssnsTraits::right_t, double>(),
130 "right element of PlainAssns should have been `double`!" 133 std::is_same<PlainAssnsTraits::data_t, void>(),
134 "metadata of PlainAssns should have been `void`!" 138 "left element pointer of PlainAssns should have been `art::Ptr<int>`!" 142 "right element pointer of PlainAssns should have been `art::Ptr<double>`!" 145 std::is_same<PlainAssnsTraits::dataptr_t, void const*>(),
146 "metadata pointer of PlainAssns should have been `void const*`!" 149 std::is_same<PlainAssnsTraits::assns_t, PlainAssns>(),
150 "PlainAssns traits should report `PlainAssns` as association class!" 153 std::is_same<PlainAssnsTraits::assns_iterator_t, PlainAssnsIter>(),
154 "PlainAssns traits should report `PlainAssnsIter` as association iterator!" 157 std::is_same<PlainAssnsTraits::art_assns_node_t, PlainAssnsNode>(),
158 "PlainAssns traits should report `PlainAssnsNode` as association node!" 161 !PlainAssnsTraits::hasMetadata,
162 "PlainAssns should have reported not to have metadata!" 167 std::is_same<MetaAssnsTraits::left_t, long int>(),
168 "left element of MetaAssns should have been `long int`!" 171 std::is_same<MetaAssnsTraits::right_t, float>(),
172 "right element of MetaAssns should have been `float`!" 175 std::is_same<MetaAssnsTraits::data_t, char>(),
176 "metadata of MetaAssns should have been `char`!" 180 "left element pointer of MetaAssns should have been `art::Ptr<long int>`!" 184 "right element pointer of MetaAssns should have been `art::Ptr<float>`!" 187 std::is_same<MetaAssnsTraits::dataptr_t, char const*>(),
188 "metadata pointer of MetaAssns should have been `char const*`!" 191 std::is_same<MetaAssnsTraits::assns_t, MetaAssns>(),
192 "MetaAssns traits should report `MetaAssns` as association class!" 195 std::is_same<MetaAssnsTraits::assns_iterator_t, MetaAssnsIter>(),
196 "MetaAssns traits should report `MetaAssnsIter` as association iterator!" 199 std::is_same<MetaAssnsTraits::art_assns_node_t, MetaAssnsNode>(),
200 "MetaAssns traits should report `MetaAssnsNode` as association node!" 203 MetaAssnsTraits::hasMetadata,
204 "MetaAssns should have reported to have metadata!" 213 "assns_metadata_type<PlainAssns> should have been void! " 217 "assns_metadata_type<MetaAssns> should have been char! " 225 "assns_metadata_type<PlainAssns> should have been void! " 229 "assns_metadata_type<MetaAssns> should have been char! "
Data types for the specified association type (or its node).
std::decay_t< decltype(*(std::declval< MetaAssnsIter >()))> MetaAssnsNode
Traits for art associations.
decltype(auto) constexpr begin(T &&obj)
ADL-aware version of std::begin.
std::decay_t< decltype(std::declval< PlainAssns >().begin())> PlainAssnsIter
std::decay_t< decltype(std::declval< MetaAssns >().begin())> MetaAssnsIter
std::decay_t< decltype(*(std::declval< PlainAssnsIter >()))> PlainAssnsNode
Trait: type is iterator of Assns.