FMT_ENABLE_IF -> enable_if_t

This commit is contained in:
Victor Zverovich 2019-05-31 20:09:19 -07:00
parent 634f707f2b
commit f57227a148
3 changed files with 8 additions and 8 deletions

View File

@ -187,11 +187,6 @@
# define FMT_ASSERT(condition, message) assert((condition) && message) # define FMT_ASSERT(condition, message) assert((condition) && message)
#endif #endif
// An enable_if helper to be used in template parameters. enable_if in template
// parameters results in much shorter symbols: https://godbolt.org/z/sWw4vP.
#define FMT_ENABLE_IF_T(...) typename std::enable_if<(__VA_ARGS__), int>::type
#define FMT_ENABLE_IF(...) FMT_ENABLE_IF_T(__VA_ARGS__) = 0
// libc++ supports string_view in pre-c++17. // libc++ supports string_view in pre-c++17.
#if (FMT_HAS_INCLUDE(<string_view>) && \ #if (FMT_HAS_INCLUDE(<string_view>) && \
(__cplusplus > 201402L || defined(_LIBCPP_VERSION))) || \ (__cplusplus > 201402L || defined(_LIBCPP_VERSION))) || \
@ -215,6 +210,11 @@ using std_string_view = std::experimental::basic_string_view<Char>;
template <typename T> struct std_string_view {}; template <typename T> struct std_string_view {};
#endif #endif
// An enable_if helper to be used in template parameters. enable_if in template
// parameters results in much shorter symbols: https://godbolt.org/z/sWw4vP.
template <bool B> using enable_if_t = typename std::enable_if<B, int>::type;
#define FMT_ENABLE_IF(...) internal::enable_if_t<__VA_ARGS__> = 0
#if (__cplusplus >= 201703L || \ #if (__cplusplus >= 201703L || \
(defined(_MSVC_LANG) && _MSVC_LANG >= 201703L)) && \ (defined(_MSVC_LANG) && _MSVC_LANG >= 201703L)) && \
__cpp_lib_is_invocable >= 201703L __cpp_lib_is_invocable >= 201703L

View File

@ -683,7 +683,7 @@ template <int GRISU_VERSION> struct grisu_shortest_handler {
} }
}; };
template <typename Double, FMT_ENABLE_IF_T(sizeof(Double) == sizeof(uint64_t))> template <typename Double, enable_if_t<sizeof(Double) == sizeof(uint64_t)>>
FMT_API bool grisu_format(Double value, buffer<char>& buf, int precision, FMT_API bool grisu_format(Double value, buffer<char>& buf, int precision,
unsigned options, int& exp) { unsigned options, int& exp) {
FMT_ASSERT(value >= 0, "value is negative"); FMT_ASSERT(value >= 0, "value is negative");

View File

@ -2238,7 +2238,7 @@ FMT_CONSTEXPR bool do_check_format_string(basic_string_view<Char> s,
} }
template <typename... Args, typename S, template <typename... Args, typename S,
FMT_ENABLE_IF_T(is_compile_string<S>::value)> internal::enable_if_t<is_compile_string<S>::value>>
void check_format_string(S format_str) { void check_format_string(S format_str) {
typedef typename S::char_type char_t; typedef typename S::char_type char_t;
FMT_CONSTEXPR_DECL bool invalid_format = FMT_CONSTEXPR_DECL bool invalid_format =