BDE 4.14.0 Production release
Loading...
Searching...
No Matches
bdlb::TokenizerIterator Class Reference

#include <bdlb_tokenizer.h>

Public Types

typedef bslstl::StringRef value_type
 
typedef int difference_type
 
typedef Tokenizer_Proxy pointer
 
typedef const bslstl::StringRef reference
 
typedef bsl::input_iterator_tag iterator_category
 

Public Member Functions

 TokenizerIterator ()
 
 TokenizerIterator (const TokenizerIterator &origin)
 
TokenizerIteratoroperator= (const TokenizerIterator &rhs)
 
TokenizerIteratoroperator++ ()
 
const bslstl::StringRef operator* () const
 
Tokenizer_Proxy operator-> () const
 

Friends

class Tokenizer
 
bool operator== (const TokenizerIterator &, const TokenizerIterator &)
 
bool operator!= (const TokenizerIterator &, const TokenizerIterator &)
 

Detailed Description

This class provides a C++-standards-conforming input iterator over the tokens in the input string suppled at construction (along with the designation of soft and hard delimiter characters) to a Tokenizer object. Tokens are returned, using a bslstl::StringRef – by value – that means the iterated references remain valid until the underlying input string itself is modified or destroyed. Note that all iterators are invalidated whenever the input string in the parent Tokenizer change.

Member Typedef Documentation

◆ difference_type

◆ iterator_category

typedef bsl::input_iterator_tag bdlb::TokenizerIterator::iterator_category

Defines a type alias for the tag type that represents the iterator concept this class models.

◆ pointer

◆ reference

◆ value_type

Constructor & Destructor Documentation

◆ TokenizerIterator() [1/2]

bdlb::TokenizerIterator::TokenizerIterator ( )

◆ TokenizerIterator() [2/2]

bdlb::TokenizerIterator::TokenizerIterator ( const TokenizerIterator origin)

Create a TokenizerIterator object having the value of the specified origin iterator.

Member Function Documentation

◆ operator*()

const bslstl::StringRef bdlb::TokenizerIterator::operator* ( ) const
inline

Return a reference to the non-modifiable current token (i.e., maximal sequence of non-delimiter characters) in the input string. The returned reference remains valid so long as the underlying input is not modified or destroyed – irrespective of the state (or existence) of this object. The behavior is undefined unless the iteration state of this object is initially valid, or if the underlying input has been modified or destroyed since this object was created.

◆ operator++()

TokenizerIterator & bdlb::TokenizerIterator::operator++ ( )

Advance the iteration state of this object to refer to the next token in the underlying input sequence, and return a reference providing modifiable access to this object. The behavior is undefined unless the iteration state of this object is initially valid, or if the underlying input has been modified or destroyed since this object was created.

◆ operator->()

Tokenizer_Proxy bdlb::TokenizerIterator::operator-> ( ) const
inline

Return a proxy object containing the non-modifiable current token (i.e., maximal sequence of non-delimiter characters) in the input string. The returned proxy remains valid so long as the underlying input is not modified or destroyed – irrespective of the state (or existence) of this object. The behavior is undefined unless the iteration state of this object is initially valid, or if the underlying input has been modified or destroyed since this object was created.

◆ operator=()

TokenizerIterator & bdlb::TokenizerIterator::operator= ( const TokenizerIterator rhs)

Assign to this object the value of the specified rhs iterator, and return a reference providing modifiable access to this object.

Friends And Related Symbol Documentation

◆ operator!=

bool operator!= ( const TokenizerIterator ,
const TokenizerIterator  
)
friend

Return true if the specified lhs and rhs objects do not have the same value, and false otherwise. The behaviour is undefined unless the iterators returned by the same Tokenizer object, or if the underlying input has been modified or destroyed since any of those objects were created.

◆ operator==

bool operator== ( const TokenizerIterator ,
const TokenizerIterator  
)
friend

Return true if the specified lhs and rhs objects have the same value, and false otherwise. Two TokenizerIterator objects have the same value if both of them are pointing to the same token within the same tokenized string or if they both point past the tokenized string. The behaviour is undefined unless the iterators returned by the same Tokenizer object, or if the underlying input has been modified or destroyed since any of those objects were created.

◆ Tokenizer

friend class Tokenizer
friend

The documentation for this class was generated from the following file: