Description
P2286R8 Formatting Ranges #5700 introduced several codeblocks that appear in the middle of normative wording and aren't in a synopsis or itemdecl. The codeblocks contain definitions of formatter
and range_formatter
, and are listed below with their location within the spec followed by a line identifying what they define (note that these may have changed as the result of P2585R1 #5706 and/or other edits):
- [vector.bool]/p8
struct formatter<T, charT> {
- [assoc.format]/p1
struct formatter<@\placeholder{map-type}@<Key, T, U...>, charT> {
- [assoc.format]/p5
struct formatter<@\placeholder{set-type}@<Key, U...>, charT> {
- [container.adaptors.format]/p1
struct formatter<@\placeholder{adaptor-type}@<T, Container, U...>, charT> {
- [format.range.formatter]/p6
class range_formatter {
- [format.range.formatter]/p12
struct formatter<R, charT> {
- [format.tuple]/p1
struct formatter<@\placeholder{pair-or-tuple}@<Ts...>, charT> {
A proposal for how to resolve the 1st case follows:
Split the [vector.bool] subclause into [vector.bool.general] containing paras 1-3, and [vector.bool.ref] containing paras 4-6 and the is-vector-bool-reference variable template. We need to find somewhere for hash<vector<bool, Allocator>>
, maybe after para 3 in [vector.bool.general]. Then the formatter
specialization and its members can be in [vector.bool.formatter].
Originally posted by @jwakely in #5700 (comment)