Skip to content

Commit

Permalink
Improve error message when formatting unknown types
Browse files Browse the repository at this point in the history
  • Loading branch information
foonathan authored and vitaut committed Sep 20, 2018
1 parent 70a6a4b commit 9d2221b
Showing 1 changed file with 14 additions and 1 deletion.
15 changes: 14 additions & 1 deletion include/fmt/core.h
Original file line number Diff line number Diff line change
Expand Up @@ -340,9 +340,22 @@ class basic_format_arg;
template <typename Context>
class basic_format_args;

template <typename T>
struct no_formatter_error : std::false_type {};

// A formatter for objects of type T.
template <typename T, typename Char = char, typename Enable = void>
struct formatter;
struct formatter {
static_assert(no_formatter_error<T>::value,
"don't know how to format the type, include fmt/ostream.h if it provides "
"an operator<< that should be used");

// The following functions are not defined intentionally.
template <typename ParseContext>
typename ParseContext::iterator parse(ParseContext &);
template <typename FormatContext>
auto format(const T &val, FormatContext &ctx) -> decltype(ctx.out());
};

template <typename T, typename Char, typename Enable = void>
struct convert_to_int {
Expand Down

0 comments on commit 9d2221b

Please sign in to comment.