#ifndef TMP_UTILITY_H #define TMP_UTILITY_H #include namespace tmp { using Size = decltype(sizeof 0); using Depth = signed long long int; template using GetType = typename T::type; namespace detail { template struct MaxImpl: std::integral_constantMaxImpl::value? V:MaxImpl::value)> {}; template struct MaxImpl: std::integral_constant {}; template constexpr Depth Max = MaxImpl::value; } } #endif