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;