CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Public Attributes | Static Public Attributes | Private Attributes
cms::soa::SoAValue< COLUMN_TYPE, T, ALIGNMENT, RESTRICT_QUALIFY > Class Template Reference

#include <SoACommon.h>

Public Types

using Ptr = typename Restr::Pointer
 
using PtrToConst = typename Restr::PointerToConst
 
using Ref = typename Restr::Reference
 
using RefToConst = typename Restr::ReferenceToConst
 
using Restr = add_restrict< T, RESTRICT_QUALIFY >
 
using Val = typename Restr::Value
 
using valueType = Val
 

Public Member Functions

 __attribute__ ((always_inline)) SoAValue(size_type i
 
 __attribute__ ((always_inline)) SoAValue(size_type i
 
 __attribute__ ((always_inline)) Ref operator()()
 
 __attribute__ ((always_inline)) RefToConst operator()() const
 
 __attribute__ ((always_inline)) Ptr operator &()
 
 __attribute__ ((always_inline)) PtrToConst operator &() const
 
T col_ (col)
 
SoAParametersImpl< COLUMN_TYPE, Tcol_ (params.addr_)
 

Public Attributes

Tcol: idx_(i)
 
SoAParametersImpl< COLUMN_TYPE, Tparams: idx_(i)
 

Static Public Attributes

static constexpr auto valueSize = sizeof(T)
 

Private Attributes

Tcol_
 
size_type idx_
 

Detailed Description

template<SoAColumnType COLUMN_TYPE, typename T, byte_size_type ALIGNMENT, bool RESTRICT_QUALIFY = RestrictQualify::disabled>
class cms::soa::SoAValue< COLUMN_TYPE, T, ALIGNMENT, RESTRICT_QUALIFY >

Definition at line 277 of file SoACommon.h.

Member Typedef Documentation

◆ Ptr

template<SoAColumnType COLUMN_TYPE, typename T, byte_size_type ALIGNMENT, bool RESTRICT_QUALIFY = RestrictQualify::disabled>
using cms::soa::SoAValue< COLUMN_TYPE, T, ALIGNMENT, RESTRICT_QUALIFY >::Ptr = typename Restr::Pointer

Definition at line 284 of file SoACommon.h.

◆ PtrToConst

template<SoAColumnType COLUMN_TYPE, typename T, byte_size_type ALIGNMENT, bool RESTRICT_QUALIFY = RestrictQualify::disabled>
using cms::soa::SoAValue< COLUMN_TYPE, T, ALIGNMENT, RESTRICT_QUALIFY >::PtrToConst = typename Restr::PointerToConst

Definition at line 286 of file SoACommon.h.

◆ Ref

template<SoAColumnType COLUMN_TYPE, typename T, byte_size_type ALIGNMENT, bool RESTRICT_QUALIFY = RestrictQualify::disabled>
using cms::soa::SoAValue< COLUMN_TYPE, T, ALIGNMENT, RESTRICT_QUALIFY >::Ref = typename Restr::Reference

Definition at line 285 of file SoACommon.h.

◆ RefToConst

template<SoAColumnType COLUMN_TYPE, typename T, byte_size_type ALIGNMENT, bool RESTRICT_QUALIFY = RestrictQualify::disabled>
using cms::soa::SoAValue< COLUMN_TYPE, T, ALIGNMENT, RESTRICT_QUALIFY >::RefToConst = typename Restr::ReferenceToConst

Definition at line 287 of file SoACommon.h.

◆ Restr

template<SoAColumnType COLUMN_TYPE, typename T, byte_size_type ALIGNMENT, bool RESTRICT_QUALIFY = RestrictQualify::disabled>
using cms::soa::SoAValue< COLUMN_TYPE, T, ALIGNMENT, RESTRICT_QUALIFY >::Restr = add_restrict<T, RESTRICT_QUALIFY>

Definition at line 282 of file SoACommon.h.

◆ Val

template<SoAColumnType COLUMN_TYPE, typename T, byte_size_type ALIGNMENT, bool RESTRICT_QUALIFY = RestrictQualify::disabled>
using cms::soa::SoAValue< COLUMN_TYPE, T, ALIGNMENT, RESTRICT_QUALIFY >::Val = typename Restr::Value

Definition at line 283 of file SoACommon.h.

◆ valueType

template<SoAColumnType COLUMN_TYPE, typename T, byte_size_type ALIGNMENT, bool RESTRICT_QUALIFY = RestrictQualify::disabled>
using cms::soa::SoAValue< COLUMN_TYPE, T, ALIGNMENT, RESTRICT_QUALIFY >::valueType = Val

Definition at line 331 of file SoACommon.h.

Member Function Documentation

◆ __attribute__() [1/6]

template<SoAColumnType COLUMN_TYPE, typename T, byte_size_type ALIGNMENT, bool RESTRICT_QUALIFY = RestrictQualify::disabled>
cms::soa::SoAValue< COLUMN_TYPE, T, ALIGNMENT, RESTRICT_QUALIFY >::__attribute__ ( (always_inline)  )
inline

◆ __attribute__() [2/6]

template<SoAColumnType COLUMN_TYPE, typename T, byte_size_type ALIGNMENT, bool RESTRICT_QUALIFY = RestrictQualify::disabled>
cms::soa::SoAValue< COLUMN_TYPE, T, ALIGNMENT, RESTRICT_QUALIFY >::__attribute__ ( (always_inline)  )
inline

◆ __attribute__() [3/6]

template<SoAColumnType COLUMN_TYPE, typename T, byte_size_type ALIGNMENT, bool RESTRICT_QUALIFY = RestrictQualify::disabled>
cms::soa::SoAValue< COLUMN_TYPE, T, ALIGNMENT, RESTRICT_QUALIFY >::__attribute__ ( (always_inline)  )
inline

◆ __attribute__() [4/6]

template<SoAColumnType COLUMN_TYPE, typename T, byte_size_type ALIGNMENT, bool RESTRICT_QUALIFY = RestrictQualify::disabled>
cms::soa::SoAValue< COLUMN_TYPE, T, ALIGNMENT, RESTRICT_QUALIFY >::__attribute__ ( (always_inline)  ) const
inline

Definition at line 300 of file SoACommon.h.

References cms::soa::SoAValue< COLUMN_TYPE, T, ALIGNMENT, RESTRICT_QUALIFY >::col, cms::soa::SoAValue< COLUMN_TYPE, T, ALIGNMENT, RESTRICT_QUALIFY >::col_, and cms::soa::SoAValue< COLUMN_TYPE, T, ALIGNMENT, RESTRICT_QUALIFY >::idx_.

300  {
301  // PtrToConst type will add the restrict qualifyer if needed
302  PtrToConst col = col_();
303  return col[idx_];
304  }
typename Restr::PointerToConst PtrToConst
Definition: SoACommon.h:286
size_type idx_
Definition: SoACommon.h:336

◆ __attribute__() [5/6]

template<SoAColumnType COLUMN_TYPE, typename T, byte_size_type ALIGNMENT, bool RESTRICT_QUALIFY = RestrictQualify::disabled>
cms::soa::SoAValue< COLUMN_TYPE, T, ALIGNMENT, RESTRICT_QUALIFY >::__attribute__ ( (always_inline)  ) &
inline

◆ __attribute__() [6/6]

template<SoAColumnType COLUMN_TYPE, typename T, byte_size_type ALIGNMENT, bool RESTRICT_QUALIFY = RestrictQualify::disabled>
cms::soa::SoAValue< COLUMN_TYPE, T, ALIGNMENT, RESTRICT_QUALIFY >::__attribute__ ( (always_inline)  ) const &
inline

◆ col_() [1/2]

template<SoAColumnType COLUMN_TYPE, typename T, byte_size_type ALIGNMENT, bool RESTRICT_QUALIFY = RestrictQualify::disabled>
T cms::soa::SoAValue< COLUMN_TYPE, T, ALIGNMENT, RESTRICT_QUALIFY >::col_ ( col  )
inline

Definition at line 289 of file SoACommon.h.

◆ col_() [2/2]

template<SoAColumnType COLUMN_TYPE, typename T, byte_size_type ALIGNMENT, bool RESTRICT_QUALIFY = RestrictQualify::disabled>
SoAParametersImpl<COLUMN_TYPE, T> cms::soa::SoAValue< COLUMN_TYPE, T, ALIGNMENT, RESTRICT_QUALIFY >::col_ ( params.  addr_)
inline

Definition at line 292 of file SoACommon.h.

292 : idx_(i), col_(params.addr_) {}
size_type idx_
Definition: SoACommon.h:336
SoAParametersImpl< COLUMN_TYPE, T > params
Definition: SoACommon.h:292

Member Data Documentation

◆ col

template<SoAColumnType COLUMN_TYPE, typename T, byte_size_type ALIGNMENT, bool RESTRICT_QUALIFY = RestrictQualify::disabled>
T* cms::soa::SoAValue< COLUMN_TYPE, T, ALIGNMENT, RESTRICT_QUALIFY >::col

◆ col_

template<SoAColumnType COLUMN_TYPE, typename T, byte_size_type ALIGNMENT, bool RESTRICT_QUALIFY = RestrictQualify::disabled>
T* cms::soa::SoAValue< COLUMN_TYPE, T, ALIGNMENT, RESTRICT_QUALIFY >::col_
private

◆ idx_

template<SoAColumnType COLUMN_TYPE, typename T, byte_size_type ALIGNMENT, bool RESTRICT_QUALIFY = RestrictQualify::disabled>
size_type cms::soa::SoAValue< COLUMN_TYPE, T, ALIGNMENT, RESTRICT_QUALIFY >::idx_
private

◆ params

template<SoAColumnType COLUMN_TYPE, typename T, byte_size_type ALIGNMENT, bool RESTRICT_QUALIFY = RestrictQualify::disabled>
SoAParametersImpl<COLUMN_TYPE, T> cms::soa::SoAValue< COLUMN_TYPE, T, ALIGNMENT, RESTRICT_QUALIFY >::params

Definition at line 292 of file SoACommon.h.

◆ valueSize

template<SoAColumnType COLUMN_TYPE, typename T, byte_size_type ALIGNMENT, bool RESTRICT_QUALIFY = RestrictQualify::disabled>
constexpr auto cms::soa::SoAValue< COLUMN_TYPE, T, ALIGNMENT, RESTRICT_QUALIFY >::valueSize = sizeof(T)
static

Definition at line 333 of file SoACommon.h.