Removed parsed_specs_checker class
This commit is contained in:
parent
c735a69ef8
commit
7772ca7ce8
@ -881,9 +881,9 @@ FMT_CONSTEXPR typename internal::result_of<Visitor(int)>::type
|
||||
template <typename Char, typename ErrorHandler = internal::error_handler>
|
||||
class basic_parse_context : private ErrorHandler {
|
||||
private:
|
||||
basic_string_view<Char> primary_format_str_;
|
||||
basic_string_view<Char> format_str_;
|
||||
int next_arg_id_;
|
||||
basic_string_view<Char> primary_format_str_;
|
||||
basic_string_view<Char> format_str_;
|
||||
int next_arg_id_;
|
||||
|
||||
public:
|
||||
typedef Char char_type;
|
||||
|
||||
@ -1596,7 +1596,8 @@ class specs_setter {
|
||||
basic_format_specs<Char> &specs_;
|
||||
};
|
||||
|
||||
template <typename ErrorHandler> class numeric_specs_checker {
|
||||
template <typename ErrorHandler>
|
||||
class numeric_specs_checker {
|
||||
public:
|
||||
FMT_CONSTEXPR numeric_specs_checker(ErrorHandler &eh, internal::type arg_type)
|
||||
: error_handler_(eh), arg_type_(arg_type) {}
|
||||
|
||||
@ -202,35 +202,6 @@ private:
|
||||
basic_parse_context<Char> parse_context_;
|
||||
};
|
||||
|
||||
template <typename ErrorHandler> class parsed_specs_checker {
|
||||
public:
|
||||
FMT_CONSTEXPR parsed_specs_checker(ErrorHandler &error_handler,
|
||||
internal::type arg_type)
|
||||
: checker_(error_handler, arg_type) {}
|
||||
|
||||
template <typename Char>
|
||||
FMT_CONSTEXPR void check(const basic_format_specs<Char> &specs) {
|
||||
if (specs.align_ == ALIGN_NUMERIC) {
|
||||
checker_.require_numeric_argument();
|
||||
}
|
||||
|
||||
if (specs.has(PLUS_FLAG | MINUS_FLAG | SIGN_FLAG)) {
|
||||
checker_.check_sign();
|
||||
}
|
||||
|
||||
if (specs.has(HASH_FLAG)) {
|
||||
checker_.require_numeric_argument();
|
||||
}
|
||||
|
||||
if (specs.has_precision()) {
|
||||
checker_.check_precision();
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
numeric_specs_checker<ErrorHandler> checker_;
|
||||
};
|
||||
|
||||
template <typename Format, typename PreparedPartsProvider, typename... Args>
|
||||
class prepared_format {
|
||||
public:
|
||||
@ -344,9 +315,7 @@ private:
|
||||
handle_dynamic_spec<internal::precision_checker>(
|
||||
specs.precision, specs.precision_ref, ctx);
|
||||
|
||||
internal::error_handler h;
|
||||
parsed_specs_checker<internal::error_handler> checker(h, arg.type());
|
||||
checker.check(specs);
|
||||
check_prepared_specs(specs, arg.type());
|
||||
advance_parse_context_to_specification(ctx, part);
|
||||
ctx.advance_to(
|
||||
visit_format_arg(arg_formatter<Range>(ctx, &specs), arg));
|
||||
@ -373,6 +342,27 @@ private:
|
||||
ctx.advance_to(stopped_at);
|
||||
}
|
||||
|
||||
template <typename Char>
|
||||
void check_prepared_specs(const basic_format_specs<Char> &specs, internal::type arg_type) const {
|
||||
internal::error_handler h;
|
||||
numeric_specs_checker<internal::error_handler> checker(h, arg_type);
|
||||
if (specs.align_ == ALIGN_NUMERIC) {
|
||||
checker.require_numeric_argument();
|
||||
}
|
||||
|
||||
if (specs.has(PLUS_FLAG | MINUS_FLAG | SIGN_FLAG)) {
|
||||
checker.check_sign();
|
||||
}
|
||||
|
||||
if (specs.has(HASH_FLAG)) {
|
||||
checker.require_numeric_argument();
|
||||
}
|
||||
|
||||
if (specs.has_precision()) {
|
||||
checker.check_precision();
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
Format format_;
|
||||
PreparedPartsProvider parts_provider_;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user