CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Static Public Member Functions
impl::MakeArray< T, N, I > Struct Template Reference

#include <trackAlgoPriorityOrder.h>

Static Public Member Functions

template<typename... Args>
static std::array< T, Nvalue (Args &&...args)
 

Detailed Description

template<typename T, size_t N, size_t I>
struct impl::MakeArray< T, N, I >

Helper template to initialize std::array compile-time.

Idea is that it "loops" over all reco::TrackBase::TrackAlgorithm enumerators from end to beginning. In each "iteration", the order priority is obtained from impl::algoPriorityOrder array, and the priority is added to a parameter pack. When the beginning is reached (termination condition is a partial specialization, see below), the std::array is initialized from the parameter pack. The "looping" is implemented as recursion.

Template Parameters
Tvalue_type of the std::array
NSize of the std::array
ICurrent index

Definition at line 119 of file trackAlgoPriorityOrder.h.

Member Function Documentation

template<typename T , size_t N, size_t I>
template<typename... Args>
static std::array<T, N> impl::MakeArray< T, N, I >::value ( Args &&...  args)
inlinestatic

Definition at line 122 of file trackAlgoPriorityOrder.h.

References ExtractAppInfoFromXML::args, Exhume::I, and impl::priorityForAlgo().

Referenced by Types.int32::__nonzero__(), Types.uint32::__nonzero__(), Types.int64::__nonzero__(), Types.uint64::__nonzero__(), Types.double::__nonzero__(), Types.bool::__nonzero__(), Types.string::__nonzero__(), average.Average::average(), Vispa.Views.PropertyView.FileProperty::buttonClicked(), Types.string::configValue(), Types.FileInPath::configValue(), Mixins.UsingBlock::dumpPython(), Types.int32::insertInto(), Types.uint32::insertInto(), Types.int64::insertInto(), Types.uint64::insertInto(), Mixins.UsingBlock::insertInto(), Types.double::insertInto(), Types.bool::insertInto(), Types.string::insertInto(), Types.FileInPath::insertInto(), Types.vint32::insertInto(), Types.vuint32::insertInto(), Types.vint64::insertInto(), Types.vuint64::insertInto(), Types.vdouble::insertInto(), Types.vbool::insertInto(), Types.vstring::insertInto(), Vispa.Views.PropertyView.FileProperty::labelDoubleClicked(), and impl::makeArray().

122  {
123  return MakeArray<T, N, I-1>::value(priorityForAlgo(static_cast<reco::TrackBase::TrackAlgorithm>(I-1)), std::forward<Args>(args)...);
124  }
static std::array< T, N > value(Args &&...args)
unsigned int priorityForAlgo(const reco::TrackBase::TrackAlgorithm algo)
const std::complex< double > I
Definition: I.h:8