File tree Expand file tree Collapse file tree 1 file changed +14
-1
lines changed
Expand file tree Collapse file tree 1 file changed +14
-1
lines changed Original file line number Diff line number Diff line change @@ -587,8 +587,21 @@ using string_view = basic_string_view<char>;
587587template <typename T> class basic_appender ;
588588using appender = basic_appender<char >;
589589
590+ namespace detail {
591+
590592// Checks whether T is a container with contiguous storage.
591- template <typename T> struct is_contiguous : std::false_type {};
593+ template <typename T>
594+ auto is_contiguous_helper (int )
595+ -> decltype(std::declval<T&>().data(), std::declval<T&>().size(),
596+ std::declval<T&>().resize(size_t {}),
597+ std::declval<T&>()[size_t{}], std::true_type{});
598+
599+ template <typename T> auto is_contiguous_helper (...) -> std::false_type;
600+
601+ } // namespace detail
602+
603+ template <typename T>
604+ struct is_contiguous : decltype (detail::is_contiguous_helper<T>(0 )) {};
592605
593606class context ;
594607template <typename OutputIt, typename Char> class generic_context ;
You can’t perform that action at this time.
0 commit comments