[format.args] # 28 Text processing library [[text]](./#text) ## 28.5 Formatting [[format]](format#args) ### 28.5.8 Arguments [[format.arguments]](format.arguments#format.args) #### 28.5.8.3 Class template basic_format_args [format.args] namespace std {templateclass basic_format_args { size_t size_; // *exposition only*const basic_format_arg* data_; // *exposition only*public:template basic_format_args(const *format-arg-store*& store) noexcept; basic_format_arg get(size_t i) const noexcept; }; template basic_format_args(*format-arg-store*) -> basic_format_args;} [1](#1) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/text.tex#L8717) An instance of basic_format_args provides access to formatting arguments[.](#1.sentence-1) Implementations should optimize the representation of basic_format_args for a small number of formatting arguments[.](#1.sentence-2) [*Note [1](#note-1)*: For example, by storing indices of type alternatives separately from values and packing the former[.](#1.sentence-3) — *end note*] [🔗](#lib:basic_format_args,constructor) `template basic_format_args(const format-arg-store& store) noexcept; ` [2](#2) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/text.tex#L8735) *Effects*: Initializessize_ with sizeof...(Args) anddata_ with store.args.data()[.](#2.sentence-1) [🔗](#lib:get,basic_format_args) `basic_format_arg get(size_t i) const noexcept; ` [3](#3) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/text.tex#L8748) *Returns*: i < size_ ? data_[i] : basic_format_arg()[.](#3.sentence-1)