15 #ifndef ROOT7_THistUtils_h 16 #define ROOT7_THistUtils_h 19 #include <type_traits> 22 namespace Experimental {
25 template <
int DIMENSIONS>
27 using Base_t = std::array<double, DIMENSIONS>;
33 template<
class...ELEMENTS,
class =
typename std::enable_if<
sizeof...(ELEMENTS) + 1 == DIMENSIONS>::
type>
38 template<
class T,
class...ELEMENTS,
class =
typename std::enable_if<
sizeof...(ELEMENTS) + 1 != DIMENSIONS>::
type>
40 static_assert(
sizeof...(ELEMENTS) + 1 == DIMENSIONS,
"Number of coordinates does not match DIMENSIONS");
47 template <
int DIMENSIONS>
56 #endif //ROOT7_THistUtils_h Namespace for new ROOT classes and functions.
TCoordArray(double x, ELEMENTS...el)
Construction with one double per DIMENSION.
TCoordArray(T, ELEMENTS...)
Fallback constructor, invoked if the one above fails because of the wrong number of arguments / coord...
std::array< double, DIMENSIONS > Base_t
TCoordArray(double(&arr)[DIMENSIONS])
Construction from a C-style array.
TCoordArray()=default
Default construction.