#include #include #include #include #include template concept HasSize = requires(const T& value) { { value.size() } -> std::convertible_to; }; template std::size_t count(const T& value) { return value.size(); } int main() { static_assert(HasSize>); static_assert(!HasSize); std::vector values{2, 4, 6}; assert(count(values) == 3); std::cout << count(values) << '\n'; }