From 93e26fa578712891ee0a5302e7563e0ba79efef9 Mon Sep 17 00:00:00 2001 From: Victor Zverovich Date: Fri, 22 May 2026 08:04:50 -0700 Subject: [PATCH] Cleanup is_contiguous --- include/fmt/base.h | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/include/fmt/base.h b/include/fmt/base.h index 78a2093e..c4a80616 100644 --- a/include/fmt/base.h +++ b/include/fmt/base.h @@ -489,6 +489,14 @@ inline FMT_CONSTEXPR auto get_container(OutputIt it) -> }; return *accessor(it).container; } + +template +struct is_contiguous : std::false_type {}; +template +struct is_contiguous().data()), + decltype(std::declval().size()), + decltype(std::declval()[size_t()])>> + : std::true_type {}; } // namespace detail // Parsing-related public API and forward declarations. @@ -592,22 +600,6 @@ using string_view = basic_string_view; template class basic_appender; using appender = basic_appender; -// Checks whether T is a container with contiguous storage. -namespace detail { - -template -struct is_contiguous_ : std::false_type {}; - -template -struct is_contiguous_().data()), - decltype(std::declval().size()), - decltype(std::declval()[size_t{}])>> - : std::true_type {}; - -} // namespace detail - -template struct is_contiguous : detail::is_contiguous_ {}; - class context; template class generic_context; template class parse_context; @@ -626,6 +618,8 @@ using buffered_context = conditional_t::value, context, generic_context, Char>>; +template struct is_contiguous : detail::is_contiguous {}; + template class basic_format_arg; template class basic_format_args;