22 General utilities library [utilities]
namespace std {
  template<class Context>
  class basic_format_args {
    size_t size_;                               
    const basic_format_arg<Context>* data_;     
  public:
    basic_format_args() noexcept;
    template<class... Args>
      basic_format_args(const format-arg-store<Context, Args...>& store) noexcept;
    basic_format_arg<Context> get(size_t i) const noexcept;
  };
  template<class Context, class... Args>
    basic_format_args(format-arg-store<Context, Args...>) -> basic_format_args<Context>;
}
An instance of 
basic_format_args provides access to formatting
arguments
.Implementations should
optimize the representation of 
basic_format_args
for a small number of formatting arguments
.[
Note 1: 
For example, by storing indices of type alternatives separately from values
and packing the former
. — 
end note]
Effects: Initializes 
size_ with 
0. Effects: Initializes
size_ with 
sizeof...(Args) and
data_ with 
store.args.data(). Returns: 
i < size_ ? data_[i] : basic_format_arg<Context>().