Skip to content

Commit b325412

Browse files
committed
Use contiguous_range when available
1 parent 879463e commit b325412

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

include/fmt/base.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,10 @@
8787
# define FMT_HAS_CPP_ATTRIBUTE(x) 0
8888
#endif
8989

90+
#if FMT_HAS_INCLUDE(<ranges>)
91+
# include <ranges>
92+
#endif
93+
9094
#define FMT_HAS_CPP14_ATTRIBUTE(attribute) \
9195
(FMT_CPLUSPLUS >= 201402L && FMT_HAS_CPP_ATTRIBUTE(attribute))
9296

@@ -588,7 +592,12 @@ template <typename T> class basic_appender;
588592
using appender = basic_appender<char>;
589593

590594
// Checks whether T is a container with contiguous storage.
595+
#if defined(__cpp_lib_ranges)
596+
template <typename T>
597+
struct is_contiguous : std::bool_constant<std::ranges::contiguous_range<T>> {};
598+
#else
591599
template <typename T> struct is_contiguous : std::false_type {};
600+
#endif
592601

593602
class context;
594603
template <typename OutputIt, typename Char> class generic_context;

0 commit comments

Comments
 (0)