21#if defined(__cpp_lib_format)
41 using base_type::base_type;
43 explicit operator std::vector<value_type>() const noexcept
45 return std::vector<value_type>(this->begin(), this->end());
52 return std::ranges::equal(lhs, rhs);
58 return std::ranges::equal(lhs, rhs);
64 return std::lexicographical_compare_three_way(lhs.begin(), lhs.end(), rhs.begin(), rhs.end());
68 constexpr std::compare_three_way_result<T>
71 return std::lexicographical_compare_three_way(lhs.begin(), lhs.end(), rhs.begin(), rhs.end());
75#if defined(__cpp_lib_format)
77struct std::formatter<
sparrow::vector_view<T>>
79 constexpr auto parse(std::format_parse_context& ctx)
84 auto format(
const sparrow::vector_view<T>& vec, std::format_context& ctx)
const
86 std::format_to(ctx.out(),
"<");
89 for (std::size_t i = 0; i < vec.size() - 1; ++i)
91 std::format_to(ctx.out(),
"{}, ", vec[i]);
94 return std::format_to(ctx.out(),
"{}>", vec.back());
101 os << std::format(
"{}", value);
The class vector_view describes an object that can refer to a constant contiguous sequence of T with ...
typename base_type::value_type value_type
std::span< const byte_t > base_type
constexpr std::compare_three_way_result_t< typename cloning_ptr< T1 >::pointer, typename cloning_ptr< T2 >::pointer > operator<=>(const cloning_ptr< T1 > &lhs, const cloning_ptr< T2 > &rhs) noexcept
SPARROW_API bool operator==(const array &lhs, const array &rhs)
Compares the content of two arrays.
std::ostream & operator<<(std::ostream &stream, T n)