Project
Loading...
Searching...
No Matches
StructToTuple.h File Reference
#include <Framework/Traits.h>
#include <array>

Go to the source code of this file.

Classes

struct  o2::framework::any_type
 
struct  o2::framework::is_braces_constructible< T, Args >
 
struct  o2::framework::UniversalType
 

Namespaces

namespace  o2
 a couple of static helper functions to create timestamp values for CCDB queries or override obsolete objects
 
namespace  o2::framework
 Defining ITS Vertex explicitly as messageable.
 

Macros

#define DPL_ENUM_0(pre, post)
 
#define DPL_ENUM_1(pre, post)   pre##0##post
 
#define DPL_ENUM_2(pre, post)   pre##0##post, pre##1##post
 
#define DPL_ENUM_3(pre, post)   pre##0##post, pre##1##post, pre##2##post
 
#define DPL_ENUM_4(pre, post)   pre##0##post, pre##1##post, pre##2##post, pre##3##post
 
#define DPL_ENUM_5(pre, post)   pre##0##post, pre##1##post, pre##2##post, pre##3##post, pre##4##post
 
#define DPL_ENUM_6(pre, post)   pre##0##post, pre##1##post, pre##2##post, pre##3##post, pre##4##post, pre##5##post
 
#define DPL_ENUM_7(pre, post)   pre##0##post, pre##1##post, pre##2##post, pre##3##post, pre##4##post, pre##5##post, pre##6##post
 
#define DPL_ENUM_8(pre, post)   pre##0##post, pre##1##post, pre##2##post, pre##3##post, pre##4##post, pre##5##post, pre##6##post, pre##7##post
 
#define DPL_ENUM_9(pre, post)   pre##0##post, pre##1##post, pre##2##post, pre##3##post, pre##4##post, pre##5##post, pre##6##post, pre##7##post, pre##8##post
 
#define DPL_ENUM_10(pre, post)   pre##0##post, pre##1##post, pre##2##post, pre##3##post, pre##4##post, pre##5##post, pre##6##post, pre##7##post, pre##8##post, pre##9##post
 
#define DPL_ENUM_20(pre, post)   DPL_ENUM_10(pre, post), DPL_ENUM_10(pre##1, post)
 
#define DPL_ENUM_30(pre, post)   DPL_ENUM_20(pre, post), DPL_ENUM_10(pre##2, post)
 
#define DPL_ENUM_40(pre, post)   DPL_ENUM_30(pre, post), DPL_ENUM_10(pre##3, post)
 
#define DPL_ENUM_50(pre, post)   DPL_ENUM_40(pre, post), DPL_ENUM_10(pre##4, post)
 
#define DPL_ENUM_60(pre, post)   DPL_ENUM_50(pre, post), DPL_ENUM_10(pre##5, post)
 
#define DPL_ENUM_70(pre, post)   DPL_ENUM_60(pre, post), DPL_ENUM_10(pre##6, post)
 
#define DPL_ENUM_80(pre, post)   DPL_ENUM_70(pre, post), DPL_ENUM_10(pre##7, post)
 
#define DPL_ENUM_90(pre, post)   DPL_ENUM_80(pre, post), DPL_ENUM_10(pre##8, post)
 
#define DPL_ENUM_100(pre, post)   DPL_ENUM_90(pre, post), DPL_ENUM_10(pre##9, post)
 
#define DPL_ENUM(pre, post, d, u)   DPL_ENUM_##d##0(pre, post), DPL_ENUM_##u(pre##d, post)
 
#define DPL_FENUM_0(f, pre, post)
 
#define DPL_FENUM_1(f, pre, post)   f(pre##0##post)
 
#define DPL_FENUM_2(f, pre, post)   f(pre##0##post), f(pre##1##post)
 
#define DPL_FENUM_3(f, pre, post)   f(pre##0##post), f(pre##1##post), f(pre##2##post)
 
#define DPL_FENUM_4(f, pre, post)   f(pre##0##post), f(pre##1##post), f(pre##2##post), f(pre##3##post)
 
#define DPL_FENUM_5(f, pre, post)   f(pre##0##post), f(pre##1##post), f(pre##2##post), f(pre##3##post), f(pre##4##post)
 
#define DPL_FENUM_6(f, pre, post)   f(pre##0##post), f(pre##1##post), f(pre##2##post), f(pre##3##post), f(pre##4##post), f(pre##5##post)
 
#define DPL_FENUM_7(f, pre, post)   f(pre##0##post), f(pre##1##post), f(pre##2##post), f(pre##3##post), f(pre##4##post), f(pre##5##post), f(pre##6##post)
 
#define DPL_FENUM_8(f, pre, post)   f(pre##0##post), f(pre##1##post), f(pre##2##post), f(pre##3##post), f(pre##4##post), f(pre##5##post), f(pre##6##post), f(pre##7##post)
 
#define DPL_FENUM_9(f, pre, post)   f(pre##0##post), f(pre##1##post), f(pre##2##post), f(pre##3##post), f(pre##4##post), f(pre##5##post), f(pre##6##post), f(pre##7##post), f(pre##8##post)
 
#define DPL_FENUM_10(f, pre, post)   f(pre##0##post), f(pre##1##post), f(pre##2##post), f(pre##3##post), f(pre##4##post), f(pre##5##post), f(pre##6##post), f(pre##7##post), f(pre##8##post), f(pre##9##post)
 
#define DPL_FENUM_20(f, pre, post)   DPL_FENUM_10(f, pre, post), DPL_FENUM_10(f, pre##1, post)
 
#define DPL_FENUM_30(f, pre, post)   DPL_FENUM_20(f, pre, post), DPL_FENUM_10(f, pre##2, post)
 
#define DPL_FENUM_40(f, pre, post)   DPL_FENUM_30(f, pre, post), DPL_FENUM_10(f, pre##3, post)
 
#define DPL_FENUM_50(f, pre, post)   DPL_FENUM_40(f, pre, post), DPL_FENUM_10(f, pre##4, post)
 
#define DPL_FENUM_60(f, pre, post)   DPL_FENUM_50(f, pre, post), DPL_FENUM_10(f, pre##5, post)
 
#define DPL_FENUM_70(f, pre, post)   DPL_FENUM_60(f, pre, post), DPL_FENUM_10(f, pre##6, post)
 
#define DPL_FENUM_80(f, pre, post)   DPL_FENUM_70(f, pre, post), DPL_FENUM_10(f, pre##7, post)
 
#define DPL_FENUM_90(f, pre, post)   DPL_FENUM_80(f, pre, post), DPL_FENUM_10(f, pre##8, post)
 
#define DPL_FENUM_100(f, pre, post)   DPL_FENUM_90(f, pre, post), DPL_FENUM_10(f, pre##9, post)
 
#define DPL_FENUM(f, pre, post, d, u)   DPL_FENUM_##d##0(f, pre, post), DPL_FENUM_##u(f, pre##d, post)
 
#define DPL_HOMOGENEOUS_APPLY_ENTRY_LOW(u)
 
#define DPL_HOMOGENEOUS_APPLY_ENTRY(d, u)
 
#define DPL_HOMOGENEOUS_APPLY_ENTRY_TENS(d)
 

Functions

template<typename T >
consteval auto o2::framework::brace_constructible_size (auto... Members)
 
template<bool B, typename T >
consteval int o2::framework::nested_brace_constructible_size ()
 
template<bool B, typename T >
consteval int o2::framework::homogeneous_apply_refs_size ()
 
template<bool B = false, class T , int D = nested_brace_constructible_size<B, T>() / 10, typename L >
requires (D == 9)
constexpr auto o2::framework::homogeneous_apply_refs (L l, T &&object)
 
template<bool B = false, class T , int D = nested_brace_constructible_size<B, T>() / 10, typename L >
requires (D == 8)
constexpr auto o2::framework::homogeneous_apply_refs (L l, T &&object)
 
template<bool B = false, class T , int D = nested_brace_constructible_size<B, T>() / 10, typename L >
requires (D == 7)
constexpr auto o2::framework::homogeneous_apply_refs (L l, T &&object)
 
template<bool B = false, class T , int D = nested_brace_constructible_size<B, T>() / 10, typename L >
requires (D == 6)
constexpr auto o2::framework::homogeneous_apply_refs (L l, T &&object)
 
template<bool B = false, class T , int D = nested_brace_constructible_size<B, T>() / 10, typename L >
requires (D == 5)
constexpr auto o2::framework::homogeneous_apply_refs (L l, T &&object)
 
template<bool B = false, class T , int D = nested_brace_constructible_size<B, T>() / 10, typename L >
requires (D == 4)
constexpr auto o2::framework::homogeneous_apply_refs (L l, T &&object)
 
template<bool B = false, class T , int D = nested_brace_constructible_size<B, T>() / 10, typename L >
requires (D == 3)
constexpr auto o2::framework::homogeneous_apply_refs (L l, T &&object)
 
template<bool B = false, class T , int D = nested_brace_constructible_size<B, T>() / 10, typename L >
requires (D == 2)
constexpr auto o2::framework::homogeneous_apply_refs (L l, T &&object)
 
template<bool B = false, class T , int D = nested_brace_constructible_size<B, T>() / 10, typename L >
requires (D == 1)
constexpr auto o2::framework::homogeneous_apply_refs (L l, T &&object)
 
template<bool B = false, class T , int D = nested_brace_constructible_size<B, T>() / 10, typename L >
requires (D == 0)
constexpr auto o2::framework::homogeneous_apply_refs (L l, T &&object)
 
template<int D, typename T , typename L >
constexpr auto o2::framework::homogeneous_apply_refs_sized (L l, T &&object)
 

Macro Definition Documentation

◆ DPL_ENUM

#define DPL_ENUM (   pre,
  post,
  d,
  u 
)    DPL_ENUM_##d##0(pre, post), DPL_ENUM_##u(pre##d, post)

Definition at line 132 of file StructToTuple.h.

◆ DPL_ENUM_0

#define DPL_ENUM_0 (   pre,
  post 
)

Definition at line 110 of file StructToTuple.h.

◆ DPL_ENUM_1

#define DPL_ENUM_1 (   pre,
  post 
)    pre##0##post

Definition at line 111 of file StructToTuple.h.

◆ DPL_ENUM_10

#define DPL_ENUM_10 (   pre,
  post 
)    pre##0##post, pre##1##post, pre##2##post, pre##3##post, pre##4##post, pre##5##post, pre##6##post, pre##7##post, pre##8##post, pre##9##post

Definition at line 120 of file StructToTuple.h.

◆ DPL_ENUM_100

#define DPL_ENUM_100 (   pre,
  post 
)    DPL_ENUM_90(pre, post), DPL_ENUM_10(pre##9, post)

Definition at line 130 of file StructToTuple.h.

◆ DPL_ENUM_2

#define DPL_ENUM_2 (   pre,
  post 
)    pre##0##post, pre##1##post

Definition at line 112 of file StructToTuple.h.

◆ DPL_ENUM_20

#define DPL_ENUM_20 (   pre,
  post 
)    DPL_ENUM_10(pre, post), DPL_ENUM_10(pre##1, post)

Definition at line 122 of file StructToTuple.h.

◆ DPL_ENUM_3

#define DPL_ENUM_3 (   pre,
  post 
)    pre##0##post, pre##1##post, pre##2##post

Definition at line 113 of file StructToTuple.h.

◆ DPL_ENUM_30

#define DPL_ENUM_30 (   pre,
  post 
)    DPL_ENUM_20(pre, post), DPL_ENUM_10(pre##2, post)

Definition at line 123 of file StructToTuple.h.

◆ DPL_ENUM_4

#define DPL_ENUM_4 (   pre,
  post 
)    pre##0##post, pre##1##post, pre##2##post, pre##3##post

Definition at line 114 of file StructToTuple.h.

◆ DPL_ENUM_40

#define DPL_ENUM_40 (   pre,
  post 
)    DPL_ENUM_30(pre, post), DPL_ENUM_10(pre##3, post)

Definition at line 124 of file StructToTuple.h.

◆ DPL_ENUM_5

#define DPL_ENUM_5 (   pre,
  post 
)    pre##0##post, pre##1##post, pre##2##post, pre##3##post, pre##4##post

Definition at line 115 of file StructToTuple.h.

◆ DPL_ENUM_50

#define DPL_ENUM_50 (   pre,
  post 
)    DPL_ENUM_40(pre, post), DPL_ENUM_10(pre##4, post)

Definition at line 125 of file StructToTuple.h.

◆ DPL_ENUM_6

#define DPL_ENUM_6 (   pre,
  post 
)    pre##0##post, pre##1##post, pre##2##post, pre##3##post, pre##4##post, pre##5##post

Definition at line 116 of file StructToTuple.h.

◆ DPL_ENUM_60

#define DPL_ENUM_60 (   pre,
  post 
)    DPL_ENUM_50(pre, post), DPL_ENUM_10(pre##5, post)

Definition at line 126 of file StructToTuple.h.

◆ DPL_ENUM_7

#define DPL_ENUM_7 (   pre,
  post 
)    pre##0##post, pre##1##post, pre##2##post, pre##3##post, pre##4##post, pre##5##post, pre##6##post

Definition at line 117 of file StructToTuple.h.

◆ DPL_ENUM_70

#define DPL_ENUM_70 (   pre,
  post 
)    DPL_ENUM_60(pre, post), DPL_ENUM_10(pre##6, post)

Definition at line 127 of file StructToTuple.h.

◆ DPL_ENUM_8

#define DPL_ENUM_8 (   pre,
  post 
)    pre##0##post, pre##1##post, pre##2##post, pre##3##post, pre##4##post, pre##5##post, pre##6##post, pre##7##post

Definition at line 118 of file StructToTuple.h.

◆ DPL_ENUM_80

#define DPL_ENUM_80 (   pre,
  post 
)    DPL_ENUM_70(pre, post), DPL_ENUM_10(pre##7, post)

Definition at line 128 of file StructToTuple.h.

◆ DPL_ENUM_9

#define DPL_ENUM_9 (   pre,
  post 
)    pre##0##post, pre##1##post, pre##2##post, pre##3##post, pre##4##post, pre##5##post, pre##6##post, pre##7##post, pre##8##post

Definition at line 119 of file StructToTuple.h.

◆ DPL_ENUM_90

#define DPL_ENUM_90 (   pre,
  post 
)    DPL_ENUM_80(pre, post), DPL_ENUM_10(pre##8, post)

Definition at line 129 of file StructToTuple.h.

◆ DPL_FENUM

#define DPL_FENUM (   f,
  pre,
  post,
  d,
  u 
)    DPL_FENUM_##d##0(f, pre, post), DPL_FENUM_##u(f, pre##d, post)

Definition at line 156 of file StructToTuple.h.

◆ DPL_FENUM_0

#define DPL_FENUM_0 (   f,
  pre,
  post 
)

Definition at line 134 of file StructToTuple.h.

◆ DPL_FENUM_1

#define DPL_FENUM_1 (   f,
  pre,
  post 
)    f(pre##0##post)

Definition at line 135 of file StructToTuple.h.

◆ DPL_FENUM_10

#define DPL_FENUM_10 (   f,
  pre,
  post 
)    f(pre##0##post), f(pre##1##post), f(pre##2##post), f(pre##3##post), f(pre##4##post), f(pre##5##post), f(pre##6##post), f(pre##7##post), f(pre##8##post), f(pre##9##post)

Definition at line 144 of file StructToTuple.h.

◆ DPL_FENUM_100

#define DPL_FENUM_100 (   f,
  pre,
  post 
)    DPL_FENUM_90(f, pre, post), DPL_FENUM_10(f, pre##9, post)

Definition at line 154 of file StructToTuple.h.

◆ DPL_FENUM_2

#define DPL_FENUM_2 (   f,
  pre,
  post 
)    f(pre##0##post), f(pre##1##post)

Definition at line 136 of file StructToTuple.h.

◆ DPL_FENUM_20

#define DPL_FENUM_20 (   f,
  pre,
  post 
)    DPL_FENUM_10(f, pre, post), DPL_FENUM_10(f, pre##1, post)

Definition at line 146 of file StructToTuple.h.

◆ DPL_FENUM_3

#define DPL_FENUM_3 (   f,
  pre,
  post 
)    f(pre##0##post), f(pre##1##post), f(pre##2##post)

Definition at line 137 of file StructToTuple.h.

◆ DPL_FENUM_30

#define DPL_FENUM_30 (   f,
  pre,
  post 
)    DPL_FENUM_20(f, pre, post), DPL_FENUM_10(f, pre##2, post)

Definition at line 147 of file StructToTuple.h.

◆ DPL_FENUM_4

#define DPL_FENUM_4 (   f,
  pre,
  post 
)    f(pre##0##post), f(pre##1##post), f(pre##2##post), f(pre##3##post)

Definition at line 138 of file StructToTuple.h.

◆ DPL_FENUM_40

#define DPL_FENUM_40 (   f,
  pre,
  post 
)    DPL_FENUM_30(f, pre, post), DPL_FENUM_10(f, pre##3, post)

Definition at line 148 of file StructToTuple.h.

◆ DPL_FENUM_5

#define DPL_FENUM_5 (   f,
  pre,
  post 
)    f(pre##0##post), f(pre##1##post), f(pre##2##post), f(pre##3##post), f(pre##4##post)

Definition at line 139 of file StructToTuple.h.

◆ DPL_FENUM_50

#define DPL_FENUM_50 (   f,
  pre,
  post 
)    DPL_FENUM_40(f, pre, post), DPL_FENUM_10(f, pre##4, post)

Definition at line 149 of file StructToTuple.h.

◆ DPL_FENUM_6

#define DPL_FENUM_6 (   f,
  pre,
  post 
)    f(pre##0##post), f(pre##1##post), f(pre##2##post), f(pre##3##post), f(pre##4##post), f(pre##5##post)

Definition at line 140 of file StructToTuple.h.

◆ DPL_FENUM_60

#define DPL_FENUM_60 (   f,
  pre,
  post 
)    DPL_FENUM_50(f, pre, post), DPL_FENUM_10(f, pre##5, post)

Definition at line 150 of file StructToTuple.h.

◆ DPL_FENUM_7

#define DPL_FENUM_7 (   f,
  pre,
  post 
)    f(pre##0##post), f(pre##1##post), f(pre##2##post), f(pre##3##post), f(pre##4##post), f(pre##5##post), f(pre##6##post)

Definition at line 141 of file StructToTuple.h.

◆ DPL_FENUM_70

#define DPL_FENUM_70 (   f,
  pre,
  post 
)    DPL_FENUM_60(f, pre, post), DPL_FENUM_10(f, pre##6, post)

Definition at line 151 of file StructToTuple.h.

◆ DPL_FENUM_8

#define DPL_FENUM_8 (   f,
  pre,
  post 
)    f(pre##0##post), f(pre##1##post), f(pre##2##post), f(pre##3##post), f(pre##4##post), f(pre##5##post), f(pre##6##post), f(pre##7##post)

Definition at line 142 of file StructToTuple.h.

◆ DPL_FENUM_80

#define DPL_FENUM_80 (   f,
  pre,
  post 
)    DPL_FENUM_70(f, pre, post), DPL_FENUM_10(f, pre##7, post)

Definition at line 152 of file StructToTuple.h.

◆ DPL_FENUM_9

#define DPL_FENUM_9 (   f,
  pre,
  post 
)    f(pre##0##post), f(pre##1##post), f(pre##2##post), f(pre##3##post), f(pre##4##post), f(pre##5##post), f(pre##6##post), f(pre##7##post), f(pre##8##post)

Definition at line 143 of file StructToTuple.h.

◆ DPL_FENUM_90

#define DPL_FENUM_90 (   f,
  pre,
  post 
)    DPL_FENUM_80(f, pre, post), DPL_FENUM_10(f, pre##8, post)

Definition at line 153 of file StructToTuple.h.

◆ DPL_HOMOGENEOUS_APPLY_ENTRY

#define DPL_HOMOGENEOUS_APPLY_ENTRY (   d,
  u 
)
Value:
constexpr(numElements == d##u) \
{ \
auto&& [DPL_ENUM(p, , d, u)] = object; \
return std::array<decltype(l(p0)), d##u>{DPL_FENUM(l, p, , d, u)}; \
}
Timeframe settings Average distance in cm of events merged into Randomize distance around average distance of merged events Simulate correct bunch interactions instead of placing only the average number of events A value[n] sets TFlen for[n] collisions in Number of bunches per trainsort Number of bunch trains Instantaneous interaction rate Do not simulate border Total number of collisions to be placed in the interior of all time Do not select random but walk over array of events in stride steps h Event generator settings h configStandalone Use CPU for GPU Force usage of the specified GPU device no CPU fallback Continue processing after an error First event to Number of events to Number of iterations to Number of iterations to Number of initial iterations excluded from const char Directory with events to Events directory is and not inside events d
#define DPL_ENUM(pre, post, d, u)
#define DPL_FENUM(f, pre, post, d, u)
GLuint object
Definition glcorearb.h:4041

Definition at line 165 of file StructToTuple.h.

◆ DPL_HOMOGENEOUS_APPLY_ENTRY_LOW

#define DPL_HOMOGENEOUS_APPLY_ENTRY_LOW (   u)
Value:
constexpr(numElements == u) \
{ \
auto&& [DPL_ENUM_##u(p, )] = object; \
return std::array<decltype(l(p0)), u>{DPL_FENUM_##u(l, p, )}; \
}

Definition at line 158 of file StructToTuple.h.

◆ DPL_HOMOGENEOUS_APPLY_ENTRY_TENS

#define DPL_HOMOGENEOUS_APPLY_ENTRY_TENS (   d)
Value:
constexpr(numElements == d##0) \
{ \
auto&& [DPL_ENUM_##d##0(p, )] = object; \
return std::array<decltype(l(p0)), d##0>{DPL_FENUM_##d##0(l, p, )}; \
}

Definition at line 172 of file StructToTuple.h.