Skip to content

Commit

Permalink
change type naming and fix sfinae bug
Browse files Browse the repository at this point in the history
  • Loading branch information
XZiar authored and vitaut committed Oct 28, 2018
1 parent b98e830 commit 2dea780
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 12 deletions.
8 changes: 4 additions & 4 deletions include/fmt/core.h
Original file line number Diff line number Diff line change
Expand Up @@ -472,10 +472,10 @@ struct compile_string {};
template <typename S>
struct is_compile_string : std::is_base_of<compile_string, S> {};

template <typename S, typename Enable = std::enable_if<is_compile_string<S>::value>>
inline auto to_string_view(const S &s) -> basic_string_view<typename S::Char> {
typedef typename S::Char Char;
return basic_string_view<Char>{s.data(), s.size() - 1};
template <typename S, typename Enable = typename std::enable_if<is_compile_string<S>::value>::type>
inline auto to_string_view(const S &s) -> basic_string_view<typename S::char_type> {
typedef typename S::char_type char_type;
return basic_string_view<char_type>{s.data(), s.size() - 1};
}

template <typename Context>
Expand Down
12 changes: 6 additions & 6 deletions include/fmt/format.h
Original file line number Diff line number Diff line change
Expand Up @@ -2243,10 +2243,10 @@ FMT_CONSTEXPR bool check_format_string(
template <typename... Args, typename String>
typename std::enable_if<is_compile_string<String>::value>::type
check_format_string(String format_str) {
typedef typename String::Char Char;
typedef typename String::char_type char_type;
FMT_CONSTEXPR_DECL bool invalid_format =
internal::check_format_string<Char, internal::error_handler, Args...>(
basic_string_view<Char>(format_str.data(), format_str.size()));
internal::check_format_string<char_type, internal::error_handler, Args...>(
basic_string_view<char_type>(format_str.data(), format_str.size()));
(void)invalid_format;
}

Expand Down Expand Up @@ -3598,10 +3598,10 @@ FMT_END_NAMESPACE
#define FMT_STRING(s) [] { \
typedef typename std::decay<decltype(s)>::type pointer; \
struct S : fmt::compile_string { \
typedef typename std::remove_cv<std::remove_pointer<pointer>::type>::type Char;\
typedef typename std::remove_cv<std::remove_pointer<pointer>::type>::type char_type;\
static FMT_CONSTEXPR pointer data() { return s; } \
static FMT_CONSTEXPR size_t size() { return sizeof(s) / sizeof(Char); } \
explicit operator fmt::basic_string_view<Char>() const { return s; } \
static FMT_CONSTEXPR size_t size() { return sizeof(s) / sizeof(char_type); } \
explicit operator fmt::basic_string_view<char_type>() const { return s; } \
}; \
return S{}; \
}()
Expand Down
4 changes: 2 additions & 2 deletions test/format-test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -2380,8 +2380,8 @@ TEST(FormatTest, VFormatTo) {
fmt::vformat_to(std::back_inserter(w), L"{}", wargs);
EXPECT_EQ(L"42", w);
w.clear();
fmt::vformat_to(std::back_inserter(w), FMT_STRING(L"{}"), args);
EXPECT_EQ("42", w);
fmt::vformat_to(std::back_inserter(w), FMT_STRING(L"{}"), wargs);
EXPECT_EQ(L"42", w);
}

#endif // FMT_USE_CONSTEXPR
Expand Down

0 comments on commit 2dea780

Please sign in to comment.