From Jason Turner

[format.tuple]

Diff to HTML by rtfpessoa

tmp/tmpmqrap40b/{from.md → to.md} RENAMED
@@ -25,10 +25,14 @@ namespace std {
25
 
26
  template<class FormatContext>
27
  typename FormatContext::iterator
28
  format(see below& elems, FormatContext& ctx) const;
29
  };
 
 
 
 
30
  }
31
  ```
32
 
33
  The `parse` member functions of these formatters interpret the format
34
  specification as a *tuple-format-spec* according to the following
@@ -94,16 +98,17 @@ closing-bracket_ = closing;
94
  template<class ParseContext>
95
  constexpr typename ParseContext::iterator
96
  parse(ParseContext& ctx);
97
  ```
98
 
99
- *Effects:* Parses the format specifier as a *tuple-format-spec* and
100
  stores the parsed specifiers in `*this`. The values of
101
  *opening-bracket\_*, *closing-bracket\_*, and *separator\_* are modified
102
  if and only if required by the *tuple-type*, if present. For each
103
- element *`e`* in *underlying\_*, if *`e`*`.set_debug_format()` is a
104
- valid expression, calls *`e`*`.set_debug_format()`.
 
105
 
106
  *Returns:* An iterator past the end of the *tuple-format-spec*.
107
 
108
  ``` cpp
109
  template<class FormatContext>
 
25
 
26
  template<class FormatContext>
27
  typename FormatContext::iterator
28
  format(see below& elems, FormatContext& ctx) const;
29
  };
30
+
31
+ template<class... Ts>
32
+ constexpr bool enable_nonlocking_formatter_optimization<pair-or-tuple<Ts...>> =
33
+ (enable_nonlocking_formatter_optimization<Ts> && ...);
34
  }
35
  ```
36
 
37
  The `parse` member functions of these formatters interpret the format
38
  specification as a *tuple-format-spec* according to the following
 
98
  template<class ParseContext>
99
  constexpr typename ParseContext::iterator
100
  parse(ParseContext& ctx);
101
  ```
102
 
103
+ *Effects:* Parses the format specifiers as a *tuple-format-spec* and
104
  stores the parsed specifiers in `*this`. The values of
105
  *opening-bracket\_*, *closing-bracket\_*, and *separator\_* are modified
106
  if and only if required by the *tuple-type*, if present. For each
107
+ element *`e`* in *underlying\_*, calls *`e`*`.parse(ctx)` to parse an
108
+ empty *format-spec* and, if *`e`*`.set_debug_format()` is a valid
109
+ expression, calls *`e`*`.set_debug_format()`.
110
 
111
  *Returns:* An iterator past the end of the *tuple-format-spec*.
112
 
113
  ``` cpp
114
  template<class FormatContext>