ATLAS Offline Software
Classes | Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE > Class Template Reference

Proxy for jagged vectors. More...

#include <JaggedVecConversions.h>

Inheritance diagram for SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >:
Collaboration diagram for SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >:

Classes

struct  nonnull_iterator
 Helper for passing iterators. More...
 

Public Types

using Payload_t = PAYLOAD_T
 The payload type. More...
 
using Payload_span = detail::AuxDataSpan< Payload_t >
 
using Elt_t = JaggedVecProxyBase::Elt_t
 Type of one jagged vector element. We use the type-independent base. More...
 
using index_type = typename Elt_t::index_type
 
using Elt_span = JaggedVecProxyBase::Elt_span
 
using element_type = Payload_t
 Standard type aliases. More...
 
using value_type = std::remove_cv_t< element_type >
 
using size_type = std::size_t
 
using difference_type = std::ptrdiff_t
 
using pointer = element_type *
 
using const_pointer = const element_type *
 
using reference = element_type &
 
using const_reference = const element_type &
 
using iterator = pointer
 Use pointers as iterators. More...
 
using const_iterator = const_pointer
 
using reverse_iterator = std::reverse_iterator< iterator >
 
using const_reverse_iterator = std::reverse_iterator< const_iterator >
 

Public Member Functions

 JaggedVecProxyT (size_t elt_index, Payload_span payload, const AuxDataSpanBase &elts, AuxVectorData &container, SG::auxid_t auxid)
 Constructor. More...
 
 JaggedVecProxyT (size_t elt_index, Payload_span payload, JaggedVecProxyBase &base)
 Constructor. More...
 
size_t size () const noexcept
 Return the size of this jagged vector element. More...
 
bool empty () const noexcept
 Test if this jagged vector element is empty. More...
 
reference operator[] (size_t i) noexcept
 Element access (non-const). More...
 
const_reference operator[] (size_t i) const noexcept
 Element access (const). More...
 
reference at (size_t i)
 Element access (non-const, bounds-checked). More...
 
const_reference at (size_t i) const
 Element access (const, bounds-checked). More...
 
reference front () noexcept
 Return a reference to the first item in this element's payload. More...
 
const_reference front () const noexcept
 Return the first item in this element's payload. More...
 
reference back () noexcept
 Return a reference to the last item in this element's payload. More...
 
const_reference back () const noexcept
 Return the last item in this element's payload. More...
 
iterator begin () noexcept
 Return a (non-const) begin iterator. More...
 
iterator end () noexcept
 Return a (non-const) end iterator. More...
 
const_iterator begin () const noexcept
 Return a (const) begin iterator. More...
 
const_iterator end () const noexcept
 Return a (const) end iterator. More...
 
const_iterator cbegin () const noexcept
 Return a (const) begin iterator. More...
 
const_iterator cend () const noexcept
 Return a (const) end iterator. More...
 
reverse_iterator rbegin () noexcept
 Return a (non-const) begin reverse iterator. More...
 
reverse_iterator rend () noexcept
 Return a (non-const) end reverse iterator. More...
 
const_reverse_iterator rbegin () const noexcept
 Return a (const) begin reverse iterator. More...
 
const_reverse_iterator rend () const noexcept
 Return a (const) end reverse iterator. More...
 
const_reverse_iterator crbegin () const noexcept
 Return a (const) begin reverse iterator. More...
 
const_reverse_iterator crend () const noexcept
 Return a (const) end reverse iterator. More...
 
template<CxxUtils::InputRangeOverT< PAYLOAD_T > RANGE>
JaggedVecProxyToperator= (const RANGE &range)
 Assign this jagged vector element from a range. More...
 
std::vector< Payload_tasVector () const
 Convert this jagged vector element to a vector. More...
 
template<class VALLOC >
 operator std::vector< Payload_t, VALLOC > () const
 Convert this jagged vector element to a vector. More...
 
void push_back (const Payload_t &x)
 Add an item to the end of this jagged vector element. More...
 
void clear ()
 Clear this jagged vector element. More...
 
void resize (size_t n, const Payload_t &x=Payload_t())
 Resize this jagged vector element. More...
 
void erase (nonnull_iterator pos)
 Erase one item from this jagged vector element. More...
 
void erase (index_type pos)
 Erase one item from this jagged vector element. More...
 
void erase (nonnull_iterator first, nonnull_iterator last)
 Erase a range of items from this jagged vector element. More...
 
void erase (index_type first, index_type last)
 Erase a range of items from this jagged vector element. More...
 
void insert (nonnull_iterator pos, const Payload_t &x)
 Insert an item into this jagged vector element. More...
 
void insert (index_type pos, const Payload_t &x)
 Insert an item into this jagged vector element. More...
 
void insert (nonnull_iterator pos, size_t n, const Payload_t &x)
 Insert a number of items into this jagged vector element. More...
 
void insert (index_type pos, size_t n, const Payload_t &x)
 Insert a number of items into this jagged vector element. More...
 
template<CxxUtils::detail::InputValIterator< PAYLOAD_T > ITERATOR>
void insert (nonnull_iterator pos, ITERATOR first, ITERATOR last)
 Insert a range of items into this jagged vector element. More...
 
template<CxxUtils::detail::InputValIterator< PAYLOAD_T > ITERATOR>
void insert (index_type pos, ITERATOR first, ITERATOR last)
 Insert a range of items into this jagged vector element. More...
 
template<CxxUtils::InputRangeOverT< PAYLOAD_T > RANGE>
void insert_range (nonnull_iterator pos, const RANGE &range)
 Insert a range of items into this jagged vector element. More...
 
template<CxxUtils::InputRangeOverT< PAYLOAD_T > RANGE>
void insert_range (index_type pos, const RANGE &range)
 Insert a range of items into this jagged vector element. More...
 
template<CxxUtils::InputRangeOverT< PAYLOAD_T > RANGE>
void append_range (const RANGE &range)
 Append a range of items to the end of this jagged vector element. More...
 
void pop_back ()
 Remove the last item from this jagged vector element. More...
 
void assign (size_t n, const Payload_t &x)
 Set this jagged vector element to a number of items. More...
 
template<CxxUtils::detail::InputValIterator< PAYLOAD_T > ITERATOR>
void assign (ITERATOR first, ITERATOR last)
 Assign this jagged vector element from a range. More...
 
template<CxxUtils::InputRangeOverT< PAYLOAD_T > RANGE>
void assign_range (const RANGE &range)
 Assign this jagged vector element from a range. More...
 

Private Member Functions

Elt_telt () noexcept
 Return a reference to this proxy's element. More...
 
const Elt_telt () const noexcept
 Return a (const) reference to this proxy's element. More...
 
size_t elt_begin () const noexcept
 Return the begin payload index of this proxy's element. More...
 
size_t elt_end () const noexcept
 Return the end payload index of this proxy's element. More...
 

Private Attributes

size_t m_index
 Index of the element we're proxying. More...
 
Payload_span m_payload
 Reference to a span over the payload vector. More...
 

Detailed Description

template<class PAYLOAD_T, class BASE>
class SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >

Proxy for jagged vectors.

We want to be able to do things like:

That means that the Accessor needs to return a proxy object that implements vector-like operations for modifying the jagged vector data. This is the purpose of this proxy class.

In the case where we're dealing with a span over jagged vector elements, we'd like each proxy to share the type-independent base data (JaggedVectorProxyBase). In that case, for example, we only need to fetch the IAuxTypeVector pointer once for everything in the span. But if the proxy is used by itself, then we don't gain anything from that, but we would have to pay the price of another layer of indirection. So the dependency on this data is factored out into the BASE base class, which can hold that data either by reference or by value.

Definition at line 249 of file JaggedVecConversions.h.

Member Typedef Documentation

◆ const_iterator

template<class PAYLOAD_T , class BASE >
using SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::const_iterator = const_pointer

Definition at line 275 of file JaggedVecConversions.h.

◆ const_pointer

template<class PAYLOAD_T , class BASE >
using SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::const_pointer = const element_type*

Definition at line 269 of file JaggedVecConversions.h.

◆ const_reference

template<class PAYLOAD_T , class BASE >
using SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::const_reference = const element_type&

Definition at line 271 of file JaggedVecConversions.h.

◆ const_reverse_iterator

template<class PAYLOAD_T , class BASE >
using SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::const_reverse_iterator = std::reverse_iterator<const_iterator>

Definition at line 277 of file JaggedVecConversions.h.

◆ difference_type

template<class PAYLOAD_T , class BASE >
using SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::difference_type = std::ptrdiff_t

Definition at line 267 of file JaggedVecConversions.h.

◆ element_type

template<class PAYLOAD_T , class BASE >
using SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::element_type = Payload_t

Standard type aliases.

Definition at line 264 of file JaggedVecConversions.h.

◆ Elt_span

template<class PAYLOAD_T , class BASE >
using SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::Elt_span = JaggedVecProxyBase::Elt_span

Definition at line 260 of file JaggedVecConversions.h.

◆ Elt_t

template<class PAYLOAD_T , class BASE >
using SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::Elt_t = JaggedVecProxyBase::Elt_t

Type of one jagged vector element. We use the type-independent base.

Definition at line 258 of file JaggedVecConversions.h.

◆ index_type

template<class PAYLOAD_T , class BASE >
using SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::index_type = typename Elt_t::index_type

Definition at line 259 of file JaggedVecConversions.h.

◆ iterator

template<class PAYLOAD_T , class BASE >
using SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::iterator = pointer

Use pointers as iterators.

Definition at line 274 of file JaggedVecConversions.h.

◆ Payload_span

template<class PAYLOAD_T , class BASE >
using SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::Payload_span = detail::AuxDataSpan<Payload_t>

Definition at line 255 of file JaggedVecConversions.h.

◆ Payload_t

template<class PAYLOAD_T , class BASE >
using SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::Payload_t = PAYLOAD_T

The payload type.

Definition at line 254 of file JaggedVecConversions.h.

◆ pointer

template<class PAYLOAD_T , class BASE >
using SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::pointer = element_type*

Definition at line 268 of file JaggedVecConversions.h.

◆ reference

template<class PAYLOAD_T , class BASE >
using SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::reference = element_type&

Definition at line 270 of file JaggedVecConversions.h.

◆ reverse_iterator

template<class PAYLOAD_T , class BASE >
using SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::reverse_iterator = std::reverse_iterator<iterator>

Definition at line 276 of file JaggedVecConversions.h.

◆ size_type

template<class PAYLOAD_T , class BASE >
using SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::size_type = std::size_t

Definition at line 266 of file JaggedVecConversions.h.

◆ value_type

template<class PAYLOAD_T , class BASE >
using SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::value_type = std::remove_cv_t<element_type>

Definition at line 265 of file JaggedVecConversions.h.

Constructor & Destructor Documentation

◆ JaggedVecProxyT() [1/2]

template<class PAYLOAD_T , class BASE >
SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::JaggedVecProxyT ( size_t  elt_index,
Payload_span  payload,
const AuxDataSpanBase elts,
AuxVectorData container,
SG::auxid_t  auxid 
)

Constructor.

Parameters
elt_indexIndex of the jagged vector element.
payloadReference to a range over the payload vector.
eltsThe elements of the jagged vector.
containerThe container holding this variable.
auxidThe aux ID of this variable.

◆ JaggedVecProxyT() [2/2]

template<class PAYLOAD_T , class BASE >
SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::JaggedVecProxyT ( size_t  elt_index,
Payload_span  payload,
JaggedVecProxyBase base 
)

Constructor.

Parameters
elt_indexIndex of the jagged vector element.
payloadReference to a range over the payload vector.
baseThe base information.

Member Function Documentation

◆ append_range()

template<class PAYLOAD_T , class BASE >
template<CxxUtils::InputRangeOverT< PAYLOAD_T > RANGE>
void SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::append_range ( const RANGE &  range)

Append a range of items to the end of this jagged vector element.

Parameters
rangeThe range to append.

◆ assign() [1/2]

template<class PAYLOAD_T , class BASE >
template<CxxUtils::detail::InputValIterator< PAYLOAD_T > ITERATOR>
void SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::assign ( ITERATOR  first,
ITERATOR  last 
)

Assign this jagged vector element from a range.

Parameters
firstStart of the range to assign.
lastEnd of the range to assign.

◆ assign() [2/2]

template<class PAYLOAD_T , class BASE >
void SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::assign ( size_t  n,
const Payload_t x 
)

Set this jagged vector element to a number of items.

Parameters
nThe number of items to assign.
xThe value to assign.

◆ assign_range()

template<class PAYLOAD_T , class BASE >
template<CxxUtils::InputRangeOverT< PAYLOAD_T > RANGE>
void SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::assign_range ( const RANGE &  range)

Assign this jagged vector element from a range.

Parameters
rangeThe range from which to assign.

◆ asVector()

template<class PAYLOAD_T , class BASE >
std::vector<Payload_t> SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::asVector ( ) const

Convert this jagged vector element to a vector.

◆ at() [1/2]

template<class PAYLOAD_T , class BASE >
reference SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::at ( size_t  i)

Element access (non-const, bounds-checked).

Parameters
iIndex within this element's payload.

◆ at() [2/2]

template<class PAYLOAD_T , class BASE >
const_reference SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::at ( size_t  i) const

Element access (const, bounds-checked).

Parameters
iIndex within this element's payload.

◆ back() [1/2]

template<class PAYLOAD_T , class BASE >
const_reference SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::back ( ) const
noexcept

Return the last item in this element's payload.

◆ back() [2/2]

template<class PAYLOAD_T , class BASE >
reference SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::back ( )
noexcept

Return a reference to the last item in this element's payload.

◆ begin() [1/2]

template<class PAYLOAD_T , class BASE >
const_iterator SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::begin ( ) const
noexcept

Return a (const) begin iterator.

◆ begin() [2/2]

template<class PAYLOAD_T , class BASE >
iterator SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::begin ( )
noexcept

Return a (non-const) begin iterator.

◆ cbegin()

template<class PAYLOAD_T , class BASE >
const_iterator SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::cbegin ( ) const
noexcept

Return a (const) begin iterator.

◆ cend()

template<class PAYLOAD_T , class BASE >
const_iterator SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::cend ( ) const
noexcept

Return a (const) end iterator.

◆ clear()

template<class PAYLOAD_T , class BASE >
void SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::clear ( )

Clear this jagged vector element.

◆ crbegin()

template<class PAYLOAD_T , class BASE >
const_reverse_iterator SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::crbegin ( ) const
noexcept

Return a (const) begin reverse iterator.

◆ crend()

template<class PAYLOAD_T , class BASE >
const_reverse_iterator SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::crend ( ) const
noexcept

Return a (const) end reverse iterator.

◆ elt() [1/2]

template<class PAYLOAD_T , class BASE >
const Elt_t& SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::elt ( ) const
privatenoexcept

Return a (const) reference to this proxy's element.

◆ elt() [2/2]

template<class PAYLOAD_T , class BASE >
Elt_t& SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::elt ( )
privatenoexcept

Return a reference to this proxy's element.

◆ elt_begin()

template<class PAYLOAD_T , class BASE >
size_t SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::elt_begin ( ) const
privatenoexcept

Return the begin payload index of this proxy's element.

◆ elt_end()

template<class PAYLOAD_T , class BASE >
size_t SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::elt_end ( ) const
privatenoexcept

Return the end payload index of this proxy's element.

◆ empty()

template<class PAYLOAD_T , class BASE >
bool SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::empty ( ) const
noexcept

Test if this jagged vector element is empty.

◆ end() [1/2]

template<class PAYLOAD_T , class BASE >
const_iterator SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::end ( ) const
noexcept

Return a (const) end iterator.

◆ end() [2/2]

template<class PAYLOAD_T , class BASE >
iterator SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::end ( )
noexcept

Return a (non-const) end iterator.

◆ erase() [1/4]

template<class PAYLOAD_T , class BASE >
void SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::erase ( index_type  first,
index_type  last 
)

Erase a range of items from this jagged vector element.

Parameters
firstIndex within the element of the first item to erase.
lastOne past the index within the element of the last item to erase.

◆ erase() [2/4]

template<class PAYLOAD_T , class BASE >
void SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::erase ( index_type  pos)

Erase one item from this jagged vector element.

Parameters
posIndex within the element of the item to erase.

◆ erase() [3/4]

template<class PAYLOAD_T , class BASE >
void SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::erase ( nonnull_iterator  first,
nonnull_iterator  last 
)

Erase a range of items from this jagged vector element.

Parameters
firstPosition within the element of the first item to erase.
lastOne past the position within the element of the last item to erase.

◆ erase() [4/4]

template<class PAYLOAD_T , class BASE >
void SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::erase ( nonnull_iterator  pos)

Erase one item from this jagged vector element.

Parameters
posPosition within the element of the item to erase.

◆ front() [1/2]

template<class PAYLOAD_T , class BASE >
const_reference SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::front ( ) const
noexcept

Return the first item in this element's payload.

◆ front() [2/2]

template<class PAYLOAD_T , class BASE >
reference SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::front ( )
noexcept

Return a reference to the first item in this element's payload.

◆ insert() [1/6]

template<class PAYLOAD_T , class BASE >
void SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::insert ( index_type  pos,
const Payload_t x 
)

Insert an item into this jagged vector element.

Parameters
posIndex within the element at which to insert.
xThe item to insert.

◆ insert() [2/6]

template<class PAYLOAD_T , class BASE >
template<CxxUtils::detail::InputValIterator< PAYLOAD_T > ITERATOR>
void SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::insert ( index_type  pos,
ITERATOR  first,
ITERATOR  last 
)

Insert a range of items into this jagged vector element.

Parameters
posIndex within the element at which to insert.
firstStart of the range to insert.
lastEnd of the range to insert.

◆ insert() [3/6]

template<class PAYLOAD_T , class BASE >
void SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::insert ( index_type  pos,
size_t  n,
const Payload_t x 
)

Insert a number of items into this jagged vector element.

Parameters
posIndex within the element at which to insert.
nThe number of items to insert.
xThe value to insert.

◆ insert() [4/6]

template<class PAYLOAD_T , class BASE >
void SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::insert ( nonnull_iterator  pos,
const Payload_t x 
)

Insert an item into this jagged vector element.

Parameters
posPosition within the element at which to insert.
xThe item to insert.

◆ insert() [5/6]

template<class PAYLOAD_T , class BASE >
template<CxxUtils::detail::InputValIterator< PAYLOAD_T > ITERATOR>
void SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::insert ( nonnull_iterator  pos,
ITERATOR  first,
ITERATOR  last 
)

Insert a range of items into this jagged vector element.

Parameters
posPosition within the element at which to insert.
firstStart of the range to insert.
lastEnd of the range to insert.

◆ insert() [6/6]

template<class PAYLOAD_T , class BASE >
void SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::insert ( nonnull_iterator  pos,
size_t  n,
const Payload_t x 
)

Insert a number of items into this jagged vector element.

Parameters
posPosition within the element at which to insert.
nThe number of items to insert.
xThe value to insert.

◆ insert_range() [1/2]

template<class PAYLOAD_T , class BASE >
template<CxxUtils::InputRangeOverT< PAYLOAD_T > RANGE>
void SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::insert_range ( index_type  pos,
const RANGE &  range 
)

Insert a range of items into this jagged vector element.

Parameters
posIndex within the element at which to insert.
rangeThe range to insert.

◆ insert_range() [2/2]

template<class PAYLOAD_T , class BASE >
template<CxxUtils::InputRangeOverT< PAYLOAD_T > RANGE>
void SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::insert_range ( nonnull_iterator  pos,
const RANGE &  range 
)

Insert a range of items into this jagged vector element.

Parameters
posPosition within the element at which to insert.
rangeThe range to insert.

◆ operator std::vector< Payload_t, VALLOC >()

template<class PAYLOAD_T , class BASE >
template<class VALLOC >
SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::operator std::vector< Payload_t, VALLOC > ( ) const

Convert this jagged vector element to a vector.

◆ operator=()

template<class PAYLOAD_T , class BASE >
template<CxxUtils::InputRangeOverT< PAYLOAD_T > RANGE>
JaggedVecProxyT& SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::operator= ( const RANGE &  range)

Assign this jagged vector element from a range.

Parameters
rangeThe range from which to assign.

◆ operator[]() [1/2]

template<class PAYLOAD_T , class BASE >
const_reference SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::operator[] ( size_t  i) const
noexcept

Element access (const).

Parameters
iIndex within this element's payload.

◆ operator[]() [2/2]

template<class PAYLOAD_T , class BASE >
reference SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::operator[] ( size_t  i)
noexcept

Element access (non-const).

Parameters
iIndex within this element's payload.

◆ pop_back()

template<class PAYLOAD_T , class BASE >
void SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::pop_back ( )

Remove the last item from this jagged vector element.

◆ push_back()

template<class PAYLOAD_T , class BASE >
void SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::push_back ( const Payload_t x)

Add an item to the end of this jagged vector element.

Parameters
xThe item to add.

◆ rbegin() [1/2]

template<class PAYLOAD_T , class BASE >
const_reverse_iterator SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::rbegin ( ) const
noexcept

Return a (const) begin reverse iterator.

◆ rbegin() [2/2]

template<class PAYLOAD_T , class BASE >
reverse_iterator SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::rbegin ( )
noexcept

Return a (non-const) begin reverse iterator.

◆ rend() [1/2]

template<class PAYLOAD_T , class BASE >
const_reverse_iterator SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::rend ( ) const
noexcept

Return a (const) end reverse iterator.

◆ rend() [2/2]

template<class PAYLOAD_T , class BASE >
reverse_iterator SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::rend ( )
noexcept

Return a (non-const) end reverse iterator.

◆ resize()

template<class PAYLOAD_T , class BASE >
void SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::resize ( size_t  n,
const Payload_t x = Payload_t() 
)

Resize this jagged vector element.

Parameters
nNew size for the element.
xIf the element is being enlarged, initialize the new elements with this value.

◆ size()

template<class PAYLOAD_T , class BASE >
size_t SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::size ( ) const
noexcept

Return the size of this jagged vector element.

Member Data Documentation

◆ m_index

template<class PAYLOAD_T , class BASE >
size_t SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::m_index
private

Index of the element we're proxying.

Definition at line 672 of file JaggedVecConversions.h.

◆ m_payload

template<class PAYLOAD_T , class BASE >
Payload_span SG::detail::JaggedVecProxyT< PAYLOAD_T, BASE >::m_payload
private

Reference to a span over the payload vector.

Definition at line 675 of file JaggedVecConversions.h.


The documentation for this class was generated from the following file:
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
SG::Accessor
Helper class to provide type-safe access to aux data.
Definition: Control/AthContainers/AthContainers/Accessor.h:68
AthenaPoolTestRead.acc
acc
Definition: AthenaPoolTestRead.py:16