prevent ""fmt/range.h"" from specializing fmt::basic_string_view (#865)
This commit is contained in:
parent
e758bfbae1
commit
ee5e35791e
@ -117,6 +117,13 @@ class is_tuple_like_ {
|
|||||||
!std::is_void<decltype(check<T>(FMT_NULL))>::value;
|
!std::is_void<decltype(check<T>(FMT_NULL))>::value;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
struct is_fmt_str_view : std::false_type {};
|
||||||
|
|
||||||
|
template <typename Char>
|
||||||
|
struct is_fmt_str_view<fmt::basic_string_view<Char>> : std::true_type {
|
||||||
|
};
|
||||||
|
|
||||||
// Check for integer_sequence
|
// Check for integer_sequence
|
||||||
#if defined(__cpp_lib_integer_sequence) || FMT_MSC_VER >= 1900
|
#if defined(__cpp_lib_integer_sequence) || FMT_MSC_VER >= 1900
|
||||||
template <typename T, T... N>
|
template <typename T, T... N>
|
||||||
@ -168,6 +175,7 @@ void for_each(Tuple &&tup, F &&f) {
|
|||||||
template<typename Arg>
|
template<typename Arg>
|
||||||
FMT_CONSTEXPR const char* format_str_quoted(bool add_space, const Arg&,
|
FMT_CONSTEXPR const char* format_str_quoted(bool add_space, const Arg&,
|
||||||
typename std::enable_if<
|
typename std::enable_if<
|
||||||
|
!is_fmt_str_view<typename std::decay<Arg>::type>::value &&
|
||||||
!is_like_std_string<typename std::decay<Arg>::type>::value>::type* = nullptr) {
|
!is_like_std_string<typename std::decay<Arg>::type>::value>::type* = nullptr) {
|
||||||
return add_space ? " {}" : "{}";
|
return add_space ? " {}" : "{}";
|
||||||
}
|
}
|
||||||
@ -175,6 +183,7 @@ FMT_CONSTEXPR const char* format_str_quoted(bool add_space, const Arg&,
|
|||||||
template<typename Arg>
|
template<typename Arg>
|
||||||
FMT_CONSTEXPR const char* format_str_quoted(bool add_space, const Arg&,
|
FMT_CONSTEXPR const char* format_str_quoted(bool add_space, const Arg&,
|
||||||
typename std::enable_if<
|
typename std::enable_if<
|
||||||
|
is_fmt_str_view<typename std::decay<Arg>::type>::value ||
|
||||||
is_like_std_string<typename std::decay<Arg>::type>::value>::type* = nullptr) {
|
is_like_std_string<typename std::decay<Arg>::type>::value>::type* = nullptr) {
|
||||||
return add_space ? " \"{}\"" : "\"{}\"";
|
return add_space ? " \"{}\"" : "\"{}\"";
|
||||||
}
|
}
|
||||||
@ -255,7 +264,8 @@ public:
|
|||||||
template <typename T>
|
template <typename T>
|
||||||
struct is_range {
|
struct is_range {
|
||||||
static FMT_CONSTEXPR_DECL const bool value =
|
static FMT_CONSTEXPR_DECL const bool value =
|
||||||
internal::is_range_<T>::value && !internal::is_like_std_string<T>::value;
|
internal::is_range_<T>::value && !internal::is_like_std_string<T>::value
|
||||||
|
&& !internal::is_fmt_str_view<T>::value;
|
||||||
};
|
};
|
||||||
|
|
||||||
template <typename RangeT, typename Char>
|
template <typename RangeT, typename Char>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user