Go to the documentation of this file.
36 template <
typename Counter, std::
size_t N>
39 template <
typename OWNER,
typename FormatName,
std::size_t... Ns,
40 typename =
typename std::enable_if_t<std::is_invocable_v<FormatName, int>>>
43 static_assert(
sizeof...( Ns ) < 1000,
"Using CounterArray with 1000 arrays or more is prohibited. This "
44 "would lead to very long compilation times" );
50 static_assert(
sizeof...( Ns ) < 1000,
"Using CounterArray with 1000 arrays or more is prohibited. This "
51 "would lead to very long compilation times" );
56 return std::array{ ( *this )[Ns].buffer()... };
89 template <
typename Counter, std::
size_t N>
91 template <
typename OWNER,
typename FormatName>
CounterArrayInternal(OWNER *owner, FormatName &&fname, std::integer_sequence< std::size_t, Ns... >)
constructor with callables for FormatName
A basic integral counter;.
auto buffer(std::integer_sequence< std::size_t, Ns... >)
Method to form an array of buffers.
CounterArray(OWNER *owner, FormatName &&fname)
generic class implementing an array of counters The only addition to a raw array is the constructor t...
struct GAUDI_API array
Parametrisation class for redirection array - like implementation.
CounterArrayInternal(OWNER *owner, std::string_view name, std::integer_sequence< std::size_t, Ns... >)
constructor for strings, FormatCounterDefault is used as the default callable
internal class implementing an array of counters