28 Text processing library [text] (original) (raw)

28.5 Formatting [format]

28.5.8 Arguments [format.arguments]

28.5.8.3 Class template basic_format_args [format.args]

namespace std { template<class Context> class basic_format_args { size_t size_; const basic_format_arg<Context>* data_; public: 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_argsfor 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_]

template<class... Args> basic_format_args(const _format-arg-store_<Context, Args...>& store) noexcept;

Effects: Initializessize_ with sizeof...(Args) anddata_ with store.args.data().

basic_format_arg<Context> get(size_t i) const noexcept;

Returns: i < size_ ? data_[i] : basic_format_arg<Context>().