#ifndef DIM_HPP
#define DIM_HPP

#include <cstdlib>

std::size_t dim(const char* const* argv) {
   std::size_t count = 0;
   while (*argv++) ++count;
   return count;
}

template<typename T, std::size_t N>
constexpr std::size_t dim(const T (&)[N]) {
   return N;
}

template<typename T>
auto dim(const T& container) -> decltype(container.size()) {
   return container.size();
}

#endif
