C ++ 20 представил std::ssize()бесплатную функцию, как показано ниже: template <class C> constexpr auto ssize(const C& c) -> std::common_type_t<std::ptrdiff_t, std::make_signed_t<decltype(c.size())>>; Возможная реализация, похоже, использует static_castдля преобразования...