[#BloombergLP-bslfmt-basic_format_parse_context]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslfmt.adoc[bslfmt]::basic&lowbar;format&lowbar;parse&lowbar;context
:relfileprefix: ../../
:mrdocs:

A format context for use by `formatter&colon;&colon;parse()` partial specialization&period; It provides access to iterators for the start and end of the remaining (unparsed) format string, as well as argument counters&period;

== Synopsis

Declared in `&lt;bslfmt&lowbar;formatparsecontext&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class t&lowbar;CHAR&gt;
class basic&lowbar;format&lowbar;parse&lowbar;context;
----

== Type Aliases

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslfmt/basic_format_parse_context/char_type.adoc[`char&lowbar;type`] 
| This `typedef` is an alias for the character type `t&lowbar;CHAR`&period;
| xref:BloombergLP/bslfmt/basic_format_parse_context/const_iterator.adoc[`const&lowbar;iterator`] 
| This `typedef` is an alias for a constant iterator over the format string&period;
| xref:BloombergLP/bslfmt/basic_format_parse_context/iterator.adoc[`iterator`] 
| This `typedef` is an alias for `const&lowbar;iterator`&period;
|===


== Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslfmt/basic_format_parse_context/2constructor-07.adoc[`basic&lowbar;format&lowbar;parse&lowbar;context`]         [.small]#[constructor]#
| Constructors
| xref:BloombergLP/bslfmt/basic_format_parse_context/advance_to.adoc[`advance&lowbar;to`] 
| Update the held iterator to the unparsed portion of the format string to be the specified `it`&period; Subsequent calls to `begin` will return this value&period; The behavior is undefined unless `it` is a valid iterator to the format string used in construction of this context&period;
| xref:BloombergLP/bslfmt/basic_format_parse_context/begin.adoc[`begin`] 
| Return an iterator to the start of the unparsed portion of the format string&period;
| xref:BloombergLP/bslfmt/basic_format_parse_context/check_arg_id.adoc[`check&lowbar;arg&lowbar;id`] 
| Check that the specified `id` is a valid argument index&period; If the indexing mode is unset, the indexing mode is set to `e&lowbar;MANUAL`&period; If the indexing mode is `e&lowbar;AUTOMATIC`, caused by a previous call to `next&lowbar;arg&lowbar;id` then an exception of type `format&lowbar;error` is thrown&period; If `id` is not less than the number of arguments then an exception of type `format&lowbar;error` is thrown&period;
| xref:BloombergLP/bslfmt/basic_format_parse_context/end.adoc[`end`] 
| Return an iterator to the start of the unparsed portion of the format string&period;
| xref:BloombergLP/bslfmt/basic_format_parse_context/next_arg_id.adoc[`next&lowbar;arg&lowbar;id`] 
| Return the index of the next&hyphen;unused argument&period; If the indexing mode is unset, the indexing mode is set to `e&lowbar;AUTOMATIC`&period; If the indexing mode is `e&lowbar;MANUAL`, caused by a previous call to `check&lowbar;arg&lowbar;id` then an exception of type `format&lowbar;error` is thrown&period; If there are no remaining unused arguments then an exception of type `format&lowbar;error` is thrown&period;
|===



[.small]#Created with https://www.mrdocs.com[MrDocs]#
