Vince's CSV Parser
Loading...
Searching...
No Matches
csv::CSVRow::iterator Class Reference

Iterator producing short-lived CSVField values with independent lazy conversion caches. More...

#include <csv_row.hpp>

Classes

class  pointer
 Temporary arrow proxy owning a field value, without a heap allocation. More...
 

Public Member Functions

 iterator (const CSVRow *row, difference_type index) noexcept
 
reference operator* () const
 
pointer operator-> () const
 
reference operator[] (difference_type n) const
 
iterator operator++ (int) noexcept
 
iterator & operator++ () noexcept
 
iterator operator-- (int) noexcept
 
iterator & operator-- () noexcept
 
iterator operator+ (difference_type n) const noexcept
 
iterator operator- (difference_type n) const noexcept
 
iterator & operator+= (difference_type n) noexcept
 
iterator & operator-= (difference_type n) noexcept
 
difference_type operator- (const iterator &other) const noexcept
 
bool operator== (const iterator &other) const noexcept
 
bool operator!= (const iterator &other) const noexcept
 
bool operator< (const iterator &other) const noexcept
 
bool operator> (const iterator &other) const noexcept
 
bool operator<= (const iterator &other) const noexcept
 
bool operator>= (const iterator &other) const noexcept
 

Friends

iterator operator+ (difference_type n, const iterator &it) noexcept
 

Detailed Description

Iterator producing short-lived CSVField values with independent lazy conversion caches.

Use const auto& field or auto field in field loops. Returned fields borrow their text; retain a row or iterator for that chunk. Iterators retain their original row span even if the source row is reused.

The legacy category is input_iterator_tag because C++11 forward iterators require references. C++20 iterator_concept supports random access, including standard reverse adaptors. Navigation never materializes a field wrapper.

Definition at line 682 of file csv_row.hpp.

Constructor & Destructor Documentation

◆ iterator()

csv::CSVRow::iterator::iterator ( const CSVRow *  row,
difference_type  index 
)
noexcept

Definition at line 246 of file csv_row.cpp.

Member Function Documentation

◆ operator!=()

bool csv::CSVRow::iterator::operator!= ( const iterator &  other) const
noexcept

Definition at line 321 of file csv_row.cpp.

◆ operator*()

CSVRow::iterator::reference csv::CSVRow::iterator::operator* ( ) const

Definition at line 250 of file csv_row.cpp.

◆ operator+()

CSVRow::iterator csv::CSVRow::iterator::operator+ ( difference_type  n) const
noexcept

Definition at line 285 of file csv_row.cpp.

◆ operator++() [1/2]

CSVRow::iterator & csv::CSVRow::iterator::operator++ ( )
noexcept

Definition at line 265 of file csv_row.cpp.

◆ operator++() [2/2]

CSVRow::iterator csv::CSVRow::iterator::operator++ ( int  )
noexcept

Definition at line 269 of file csv_row.cpp.

◆ operator+=()

CSVRow::iterator & csv::CSVRow::iterator::operator+= ( difference_type  n)
noexcept

Definition at line 291 of file csv_row.cpp.

◆ operator-() [1/2]

CSVRow::iterator::difference_type csv::CSVRow::iterator::operator- ( const iterator &  other) const
noexcept

Definition at line 307 of file csv_row.cpp.

◆ operator-() [2/2]

CSVRow::iterator csv::CSVRow::iterator::operator- ( difference_type  n) const
noexcept

Definition at line 296 of file csv_row.cpp.

◆ operator--() [1/2]

CSVRow::iterator & csv::CSVRow::iterator::operator-- ( )
noexcept

Definition at line 275 of file csv_row.cpp.

◆ operator--() [2/2]

CSVRow::iterator csv::CSVRow::iterator::operator-- ( int  )
noexcept

Definition at line 279 of file csv_row.cpp.

◆ operator-=()

CSVRow::iterator & csv::CSVRow::iterator::operator-= ( difference_type  n)
noexcept

Definition at line 302 of file csv_row.cpp.

◆ operator->()

CSVRow::iterator::pointer csv::CSVRow::iterator::operator-> ( ) const

Definition at line 257 of file csv_row.cpp.

◆ operator<()

bool csv::CSVRow::iterator::operator< ( const iterator &  other) const
noexcept

Definition at line 325 of file csv_row.cpp.

◆ operator<=()

bool csv::CSVRow::iterator::operator<= ( const iterator &  other) const
noexcept

Definition at line 333 of file csv_row.cpp.

◆ operator==()

bool csv::CSVRow::iterator::operator== ( const iterator &  other) const
noexcept

Definition at line 315 of file csv_row.cpp.

◆ operator>()

bool csv::CSVRow::iterator::operator> ( const iterator &  other) const
noexcept

Definition at line 329 of file csv_row.cpp.

◆ operator>=()

bool csv::CSVRow::iterator::operator>= ( const iterator &  other) const
noexcept

Definition at line 337 of file csv_row.cpp.

◆ operator[]()

CSVRow::iterator::reference csv::CSVRow::iterator::operator[] ( difference_type  n) const

Definition at line 261 of file csv_row.cpp.


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