#ifndef DIM_HPP #define DIM_HPP #include std::size_t dim(const char* const* argv) { std::size_t count = 0; while (*argv++) ++count; return count; } template constexpr std::size_t dim(const T (&)[N]) { return N; } template auto dim(const T& container) -> decltype(container.size()) { return container.size(); } #endif