9#ifndef INCLUDED_BSLFMT_FORMATPARSECONTEXT
10#define INCLUDED_BSLFMT_FORMATPARSECONTEXT
63#include <bslscm_version.h>
85template <
class t_CHAR>
95 enum IndexingMode { e_UNKNOWN, e_MANUAL, e_AUTOMATIC };
101 IndexingMode d_indexing;
182template <class t_CHAR>
187: d_origBegin(fmt.
begin())
188, d_unparsed(fmt.
begin())
190, d_indexing(e_UNKNOWN)
196template <
class t_CHAR>
202: d_origBegin(fmt.begin())
203, d_unparsed(fmt.begin())
205, d_indexing(e_UNKNOWN)
212template <
class t_CHAR>
219 if (!((it >= d_origBegin) && (it <= d_end))) {
221 "Parse error: attempt to advance to an out-of-range iterator"));
226template <
class t_CHAR>
231 if (d_indexing == e_MANUAL) {
234 if (d_nextArgId >= d_numArgs) {
236 "number of arguments"));
238 if (d_indexing == e_UNKNOWN) {
239 d_indexing = e_AUTOMATIC;
241 return d_nextArgId++;
244template <
class t_CHAR>
249 if (d_indexing == e_AUTOMATIC) {
252 if (
id >= d_numArgs) {
255 if (d_indexing == e_UNKNOWN) {
256 d_indexing = e_MANUAL;
261template <
class t_CHAR>
270template <
class t_CHAR>
Definition bslstl_stringview.h:471
const value_type * const_iterator
Definition bslstl_stringview.h:481
Definition bslfmt_formatparsecontext.h:86
BSLS_KEYWORD_CONSTEXPR_CPP20 const_iterator begin() const BSLS_KEYWORD_NOEXCEPT
Definition bslfmt_formatparsecontext.h:265
BSLS_KEYWORD_CONSTEXPR_CPP20 void advance_to(const_iterator it)
Definition bslfmt_formatparsecontext.h:215
const_iterator iterator
Definition bslfmt_formatparsecontext.h:91
BSLS_KEYWORD_CONSTEXPR_CPP20 const_iterator end() const BSLS_KEYWORD_NOEXCEPT
Definition bslfmt_formatparsecontext.h:274
BSLS_KEYWORD_CONSTEXPR_CPP20 void check_arg_id(size_t id)
Definition bslfmt_formatparsecontext.h:247
t_CHAR char_type
Definition bslfmt_formatparsecontext.h:114
bsl::basic_string_view< t_CHAR >::const_iterator const_iterator
Definition bslfmt_formatparsecontext.h:90
BSLS_KEYWORD_CONSTEXPR_CPP20 size_t next_arg_id()
Definition bslfmt_formatparsecontext.h:229
#define BSLS_THROW(X)
Definition bsls_exceptionutil.h:374
#define BSLS_IDENT(str)
BSLS_IDENT() - insert string into .comment binary segment (if supported)
Definition bsls_ident.h:238
#define BSLS_KEYWORD_CONSTEXPR_CPP20
Definition bsls_keyword.h:645
#define BSLS_KEYWORD_DELETED
Definition bsls_keyword.h:651
#define BSLS_KEYWORD_NOEXCEPT
Definition bsls_keyword.h:674
Definition bdlat_valuetypefunctions.h:939
Definition bslfmt_enablestreamedformatter.h:130
basic_format_parse_context< char > format_parse_context
Definition bslfmt_formatparsecontext.h:170
basic_format_parse_context< wchar_t > wformat_parse_context
Definition bslfmt_formatparsecontext.h:171