15 #include <fmt/format.h>
17 #include <boost/container/static_vector.hpp>
42 template <
typename Histo, std::
size_t N>
45 template <
typename OWNER,
typename FormatName,
typename FormatTitle,
46 typename =
typename std::enable_if_t<std::is_invocable_v<FormatName, int>>,
47 typename =
typename std::enable_if_t<std::is_invocable_v<FormatTitle, int>>>
49 typename Histo::AxisTupleType&& allAxis ) {
50 for (
std::size_t i = 0; i <
N; i++ ) { this->emplace_back( owner, fname( i ), ftitle( i ), allAxis ); }
53 template <
typename OWNER>
55 typename Histo::AxisTupleType&& allAxis ) {
99 typename Seq = std::make_integer_sequence<unsigned int, std::tuple_size_v<typename Histo::AxisTupleType>>>
101 template <
typename Histo,
std::size_t N,
unsigned int... ND>
104 template <
typename OWNER,
typename FormatName,
typename FormatTitle, std::
size_t M = N>
105 HistogramArray( OWNER* owner, FormatName&& fname, FormatTitle&& ftitle,
typename Histo::AxisTupleType&& allAxis )
106 :
details::HistogramArrayInternal<Histo,
N>( owner, fname, ftitle,
107 std::forward<typename Histo::AxisTupleType>( allAxis ) ) {}
109 template <
unsigned int I>
110 using AxisType = std::tuple_element_t<I, typename Histo::AxisTupleType>;
112 template <
typename OWNER,
typename FormatName,
typename FormatTitle>