Merge 5f956f992048eaa770dc28c65ec0e441df5bc222 into 432fda7bfa0167403b8dd30d3cc6b43c9b80f468

This commit is contained in:
user202729 2026-04-30 11:18:57 +08:00 committed by GitHub
commit 29f2b02dba
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -587,8 +587,21 @@ using string_view = basic_string_view<char>;
template <typename T> class basic_appender; template <typename T> class basic_appender;
using appender = basic_appender<char>; using appender = basic_appender<char>;
namespace detail {
// Checks whether T is a container with contiguous storage. // Checks whether T is a container with contiguous storage.
template <typename T> struct is_contiguous : std::false_type {}; template <typename T>
auto is_contiguous_helper(int)
-> decltype(std::declval<T&>().data(), std::declval<T&>().size(),
std::declval<T&>().resize(size_t{}),
std::declval<T&>()[size_t{}], std::true_type{});
template <typename T> auto is_contiguous_helper(...) -> std::false_type;
} // namespace detail
template <typename T>
struct is_contiguous : decltype(detail::is_contiguous_helper<T>(0)) {};
class context; class context;
template <typename OutputIt, typename Char> class generic_context; template <typename OutputIt, typename Char> class generic_context;