|
ATLAS Offline Software
|
Go to the documentation of this file.
14 #ifndef ATHCONTAINERS_JAGGEDVECACCESSOR_H
15 #define ATHCONTAINERS_JAGGEDVECACCESSOR_H
77 template <
class PAYLOAD_T,
class ALLOC>
91 using Elt_t =
typename Base::Elt_t;
116 using Base::operator();
117 using Base::getDataSpan;
118 using Base::getEltArray;
119 using Base::getPayloadArray;
120 using Base::getEltSpan;
121 using Base::getPayloadSpan;
159 template <IsAuxElement ELT>
181 template <CxxUtils::InputRangeOverT<PAYLOAD_T> RANGE>
191 template <CxxUtils::InputRangeOverT<PAYLOAD_T> RANGE>
251 #endif // not ATHCONTAINERS_JAGGEDVECACCESSOR_H
Proxy for jagged vectors.
Flag that a class may have auxiliary data associated with it.
Helper class to provide type-safe access to aux data.
Payload_span getPayloadSpan(AuxVectorData &container) const
Get a span over the payload vector.
Base class for elements of a container that can have aux data.
SG::auxid_t auxid() const
Return the aux id for this variable.
void set(AuxVectorData &container, size_t index, const RANGE &x) const
Set the variable for one element.
typename Base::Elt_t Elt_t
One element of the jagged vector.
void set(AuxElement &e, const RANGE &x) const
Set the variable for one element.
Helper class to provide constant type-safe access to aux data.
Simplified version of the C++20 std::span.
Helper: Make a span — either read-only or writable — from a jagged vector element.
typename AuxDataTraits< Payload_t, PayloadAlloc_t >::span Payload_span
void const_container_pointer_type
span getDataSpan(AuxVectorData &container) const
Get a span over spans representing the jagged vector.
size_t auxid_t
Identifier for a particular aux data item.
Accessor(const std::string &name, const std::string &clsname)
Constructor.
typename AuxDataTraits< Elt_t, ALLOC >::span Elt_span
Spans over the objects that are actually stored.
reference_type operator()(ELT &e) const
Fetch the variable for one element, as a non-const reference.
Accessor(const std::string &name)
Constructor.
Accessor(const SG::auxid_t auxid)
Constructor taking an auxid directly.
Elt_t * getEltArray(AuxVectorData &container) const
Get a pointer to the start of the array of JaggedVecElt objects.
Manage lookup of vectors of auxiliary data.
typename std::allocator_traits< ALLOC >::template rebind_alloc< Payload_t > PayloadAlloc_t
Allocator to use for the payload vector.
Helper class to provide type-safe access to aux data.
bool isAvailableWritable(AuxElement &e) const
Test to see if this variable exists in the store and is writable.
bool isAvailableWritable(AuxVectorData &c) const
Test to see if this variable exists in the store and is writable.
Add at() methods to a range class.
Basic definitions for auxiliary types.
Add at() methods to a range class.
Compatibility helpers for using some pieces of C++20 concepts with older compilers.
Helper class to provide constant type-safe access to aux data, specialized for JaggedVecElt.
Describe one element of a jagged vector.
Elt_span getEltSpan(AuxVectorData &container) const
Get a span over the array of JaggedVecElt objects.
Handle mappings between names and auxid_t.
void container_pointer_type
Not supported.
Payload_t * getPayloadArray(AuxVectorData &container) const
Get a pointer to the start of the payload array.
Manage lookup of vectors of auxiliary data.
Define macros for attributes used to control the static checker.
typename Base::Payload_t Payload_t
Payload type.