Skip to content

Commit

Permalink
Suppress an MSVC warning (#1622)
Browse files Browse the repository at this point in the history
  • Loading branch information
vitaut committed Apr 11, 2020
1 parent 8cd8ef0 commit cf801cd
Showing 1 changed file with 8 additions and 5 deletions.
13 changes: 8 additions & 5 deletions include/fmt/format.h
Original file line number Diff line number Diff line change
Expand Up @@ -2139,12 +2139,18 @@ template <typename ErrorHandler> class numeric_specs_checker {
// A format specifier handler that checks if specifiers are consistent with the
// argument type.
template <typename Handler> class specs_checker : public Handler {
private:
numeric_specs_checker<Handler> checker_;

// Suppress an MSVC warning about using this in initializer list.
Handler& error_handler() { return *this; }

public:
FMT_CONSTEXPR specs_checker(const Handler& handler, internal::type arg_type)
: Handler(handler), checker_(*this, arg_type) {}
: Handler(handler), checker_(error_handler(), arg_type) {}

FMT_CONSTEXPR specs_checker(const specs_checker& other)
: Handler(other), checker_(*this, other.arg_type_) {}
: Handler(other), checker_(error_handler(), other.arg_type_) {}

FMT_CONSTEXPR void on_align(align_t align) {
if (align == align::numeric) checker_.require_numeric_argument();
Expand Down Expand Up @@ -2177,9 +2183,6 @@ template <typename Handler> class specs_checker : public Handler {
}

FMT_CONSTEXPR void end_precision() { checker_.check_precision(); }

private:
numeric_specs_checker<Handler> checker_;
};

template <template <typename> class Handler, typename FormatArg,
Expand Down

0 comments on commit cf801cd

Please sign in to comment.