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

Helper: Make a span from a jagged vector element. More...

#include <JaggedVecConversions.h>

Collaboration diagram for SG::detail::JaggedVecConstConverter< PAYLOAD_T >:

Public Types

using Payload_t = PAYLOAD_T
 The type of the jagged vector payload. More...
 
using const_Payload_span = detail::AuxDataConstSpan< Payload_t >
 An AuxDataSpan representing the payload vector. More...
 
using element_type = CxxUtils::range_with_conv< typename AuxDataTraits< Payload_t >::const_span >
 The type of the span we produce. More...
 

Public Member Functions

 JaggedVecConstConverter (const JaggedVecEltBase *elts, const_Payload_span payload)
 Constructor. More...
 
const element_type operator() (const JaggedVecEltBase &elt) const
 Convert to a span. More...
 

Private Attributes

const JaggedVecEltBasem_elts
 The vector of elements. More...
 
const_Payload_span m_payload
 The span over the payload vector. More...
 

Detailed Description

template<class PAYLOAD_T>
class SG::detail::JaggedVecConstConverter< PAYLOAD_T >

Helper: Make a span from a jagged vector element.

An instance of this class is constructed from an AuxDataSpan over the payload vector. (This has a reference to the range held by the AuxTypeVector, so if the payload vector changes, we'll see it here.) operator() then takes a JaggedVecElt and produces a span representing that element.

Definition at line 48 of file JaggedVecConversions.h.

Member Typedef Documentation

◆ const_Payload_span

An AuxDataSpan representing the payload vector.

Definition at line 55 of file JaggedVecConversions.h.

◆ element_type

template<class PAYLOAD_T >
using SG::detail::JaggedVecConstConverter< PAYLOAD_T >::element_type = CxxUtils::range_with_conv<typename AuxDataTraits<Payload_t>::const_span>

The type of the span we produce.

Definition at line 58 of file JaggedVecConversions.h.

◆ Payload_t

template<class PAYLOAD_T >
using SG::detail::JaggedVecConstConverter< PAYLOAD_T >::Payload_t = PAYLOAD_T

The type of the jagged vector payload.

Definition at line 52 of file JaggedVecConversions.h.

Constructor & Destructor Documentation

◆ JaggedVecConstConverter()

template<class PAYLOAD_T >
SG::detail::JaggedVecConstConverter< PAYLOAD_T >::JaggedVecConstConverter ( const JaggedVecEltBase elts,
const_Payload_span  payload 
)

Constructor.

Parameters
eltsStart of the element vector.
payloadSpan over the payload vector.

Member Function Documentation

◆ operator()()

template<class PAYLOAD_T >
const element_type SG::detail::JaggedVecConstConverter< PAYLOAD_T >::operator() ( const JaggedVecEltBase elt) const

Convert to a span.

Parameters
eltThe jagged vector element to transform.

Member Data Documentation

◆ m_elts

template<class PAYLOAD_T >
const JaggedVecEltBase* SG::detail::JaggedVecConstConverter< PAYLOAD_T >::m_elts
private

The vector of elements.

Definition at line 79 of file JaggedVecConversions.h.

◆ m_payload

template<class PAYLOAD_T >
const_Payload_span SG::detail::JaggedVecConstConverter< PAYLOAD_T >::m_payload
private

The span over the payload vector.

Definition at line 82 of file JaggedVecConversions.h.


The documentation for this class was generated from the following file: