File tree Expand file tree Collapse file tree 1 file changed +18
-0
lines changed
Expand file tree Collapse file tree 1 file changed +18
-0
lines changed Original file line number Diff line number Diff line change 8787# define FMT_HAS_CPP_ATTRIBUTE (x ) 0
8888#endif
8989
90+ #if FMT_HAS_INCLUDE(<iterator>)
91+ # include < iterator>
92+ #endif
93+
9094#define FMT_HAS_CPP14_ATTRIBUTE (attribute ) \
9195 (FMT_CPLUSPLUS >= 201402L && FMT_HAS_CPP_ATTRIBUTE(attribute))
9296
@@ -588,7 +592,21 @@ template <typename T> class basic_appender;
588592using appender = basic_appender<char >;
589593
590594// Checks whether T is a container with contiguous storage.
595+ #if FMT_HAS_INCLUDE(<iterator>)
596+ template <typename T, typename = void >
597+ struct is_contiguous : std::false_type {};
598+
599+ template <typename T>
600+ struct is_contiguous <
601+ T,
602+ void_t <decltype (std::data(std::declval<T&>())),
603+ decltype (std::declval<T&>().size()),
604+ decltype(std::declval<T&>().resize(size_t {})),
605+ decltype(std::declval<T&>()[size_t{}])>>
606+ : std::true_type {};
607+ #else
591608template <typename T> struct is_contiguous : std::false_type {};
609+ #endif
592610
593611class context ;
594612template <typename OutputIt, typename Char> class generic_context ;
You can’t perform that action at this time.
0 commit comments