From Jason Turner

[format.args]

Diff to HTML by rtfpessoa

tmp/tmp720i12ez/{from.md → to.md} RENAMED
@@ -13,15 +13,22 @@ namespace std {
13
  template<class... Args>
14
  basic_format_args(const format-arg-store<Context, Args...>& store) noexcept;
15
 
16
  basic_format_arg<Context> get(size_t i) const noexcept;
17
  };
 
 
 
18
  }
19
  ```
20
 
21
  An instance of `basic_format_args` provides access to formatting
22
- arguments.
 
 
 
 
23
 
24
  ``` cpp
25
  basic_format_args() noexcept;
26
  ```
27
 
@@ -39,10 +46,5 @@ template<class... Args>
39
  basic_format_arg<Context> get(size_t i) const noexcept;
40
  ```
41
 
42
  *Returns:* `i < size_ ? data_[i] : basic_format_arg<Context>()`.
43
 
44
- [*Note 1*: Implementations are encouraged to optimize the
45
- representation of `basic_format_args` for small number of formatting
46
- arguments by storing indices of type alternatives separately from values
47
- and packing the former. — *end note*]
48
-
 
13
  template<class... Args>
14
  basic_format_args(const format-arg-store<Context, Args...>& store) noexcept;
15
 
16
  basic_format_arg<Context> get(size_t i) const noexcept;
17
  };
18
+
19
+ template<class Context, class... Args>
20
+ basic_format_args(format-arg-store<Context, Args...>) -> basic_format_args<Context>;
21
  }
22
  ```
23
 
24
  An instance of `basic_format_args` provides access to formatting
25
+ arguments. Implementations should optimize the representation of
26
+ `basic_format_args` for a small number of formatting arguments.
27
+
28
+ [*Note 1*: For example, by storing indices of type alternatives
29
+ separately from values and packing the former. — *end note*]
30
 
31
  ``` cpp
32
  basic_format_args() noexcept;
33
  ```
34
 
 
46
  basic_format_arg<Context> get(size_t i) const noexcept;
47
  ```
48
 
49
  *Returns:* `i < size_ ? data_[i] : basic_format_arg<Context>()`.
50