| 3172 | } |
| 3173 | |
| 3174 | const Char* on_format_specs(const Char* begin, const Char* end) { |
| 3175 | advance_to(parse_context, begin); |
| 3176 | internal::custom_formatter<Context> f(parse_context, context); |
| 3177 | if (visit_format_arg(f, arg)) return parse_context.begin(); |
| 3178 | basic_format_specs<Char> specs; |
| 3179 | using internal::specs_handler; |
| 3180 | using parse_context_t = basic_format_parse_context<Char>; |
| 3181 | internal::specs_checker<specs_handler<parse_context_t, Context>> handler( |
| 3182 | specs_handler<parse_context_t, Context>(specs, parse_context, context), |
| 3183 | arg.type()); |
| 3184 | begin = parse_format_specs(begin, end, handler); |
| 3185 | if (begin == end || *begin != '}') on_error("missing '}' in format string"); |
| 3186 | advance_to(parse_context, begin); |
| 3187 | context.advance_to( |
| 3188 | visit_format_arg(ArgFormatter(context, &parse_context, &specs), arg)); |
| 3189 | return begin; |
| 3190 | } |
| 3191 | |
| 3192 | basic_format_parse_context<Char> parse_context; |
| 3193 | Context context; |
no test coverage detected