From 5f956f992048eaa770dc28c65ec0e441df5bc222 Mon Sep 17 00:00:00 2001 From: user202729 <25191436+user202729@users.noreply.github.com> Date: Sun, 15 Mar 2026 12:09:51 +0700 Subject: [PATCH] Provide reasonable default definition for is_contiguous --- include/fmt/base.h | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/include/fmt/base.h b/include/fmt/base.h index 49868b6d751a..e9515606d587 100644 --- a/include/fmt/base.h +++ b/include/fmt/base.h @@ -587,8 +587,21 @@ using string_view = basic_string_view; template class basic_appender; using appender = basic_appender; +namespace detail { + // Checks whether T is a container with contiguous storage. -template struct is_contiguous : std::false_type {}; +template +auto is_contiguous_helper(int) + -> decltype(std::declval().data(), std::declval().size(), + std::declval().resize(size_t{}), + std::declval()[size_t{}], std::true_type{}); + +template auto is_contiguous_helper(...) -> std::false_type; + +} // namespace detail + +template +struct is_contiguous : decltype(detail::is_contiguous_helper(0)) {}; class context; template class generic_context;