| 312 | |
| 313 | template <typename Char> |
| 314 | void parse_flags(format_specs& specs, const Char*& it, const Char* end) { |
| 315 | for (; it != end; ++it) { |
| 316 | switch (*it) { |
| 317 | case '-': specs.set_align(align::left); break; |
| 318 | case '+': specs.set_sign(sign::plus); break; |
| 319 | case '0': specs.set_fill('0'); break; |
| 320 | case ' ': |
| 321 | if (specs.sign() != sign::plus) specs.set_sign(sign::space); |
| 322 | break; |
| 323 | case '#': specs.set_alt(); break; |
| 324 | default: return; |
| 325 | } |
| 326 | } |
| 327 | } |
| 328 | |
| 329 | template <typename Char, typename GetArg> |
| 330 | auto parse_header(const Char*& it, const Char* end, format_specs& specs, |