libpqxx  5.0
pqxx::const_result_iterator Class Reference

Iterator for rows in a result. Use as result::const_iterator. More...

#include <result.hxx>

Inheritance diagram for pqxx::const_result_iterator:

Public Types

typedef const rowpointer
 
typedef row reference
 
typedef result::size_type size_type
 
typedef result::difference_type difference_type
 
- Public Types inherited from pqxx::row
typedef row_size_type size_type
 
typedef row_difference_type difference_type
 
typedef const_row_iterator const_iterator
 
typedef const_iterator iterator
 
typedef field reference
 
typedef const_row_iterator pointer
 
typedef const_reverse_row_iterator const_reverse_iterator
 
typedef const_reverse_iterator reverse_iterator
 

Public Member Functions

 const_result_iterator () PQXX_NOEXCEPT
 
 const_result_iterator (const row &t) PQXX_NOEXCEPT
 
Dereferencing operators
pointer operator-> () const
 
reference operator* () const
 
Manipulations
const_result_iterator operator++ (int)
 
const_result_iteratoroperator++ ()
 
const_result_iterator operator-- (int)
 
const_result_iteratoroperator-- ()
 
const_result_iteratoroperator+= (difference_type i)
 
const_result_iteratoroperator-= (difference_type i)
 
Comparisons
bool operator== (const const_result_iterator &i) const
 
bool operator!= (const const_result_iterator &i) const
 
bool operator< (const const_result_iterator &i) const
 
bool operator<= (const const_result_iterator &i) const
 
bool operator> (const const_result_iterator &i) const
 
bool operator>= (const const_result_iterator &i) const
 
- Public Member Functions inherited from pqxx::row
 row (const result *r, size_t i) PQXX_NOEXCEPT
 
 ~row () PQXX_NOEXCEPT
 
const_iterator begin () const PQXX_NOEXCEPT
 
const_iterator cbegin () const PQXX_NOEXCEPT
 
const_iterator end () const PQXX_NOEXCEPT
 
const_iterator cend () const PQXX_NOEXCEPT
 
size_type size () const PQXX_NOEXCEPT
 
void swap (row &) PQXX_NOEXCEPT
 
size_t rownumber () const PQXX_NOEXCEPT
 
size_t num () const
 
row slice (size_type Begin, size_type End) const
 
PQXX_PURE bool empty () const PQXX_NOEXCEPT
 
PQXX_PURE bool operator== (const row &) const PQXX_NOEXCEPT
 
bool operator!= (const row &rhs) const PQXX_NOEXCEPT
 
reference front () const PQXX_NOEXCEPT
 
reference back () const PQXX_NOEXCEPT
 
const_reverse_row_iterator rbegin () const
 
const_reverse_row_iterator crbegin () const
 
const_reverse_row_iterator rend () const
 
const_reverse_row_iterator crend () const
 
reference operator[] (size_type) const PQXX_NOEXCEPT
 
reference operator[] (int) const PQXX_NOEXCEPT
 
reference operator[] (const char[]) const
 
reference operator[] (const std::string &) const
 
reference at (size_type) const
 
reference at (int) const
 
reference at (const char[]) const
 
reference at (const std::string &) const
 
size_type column_number (const std::string &ColName) const
 Number of given column (throws exception if it doesn't exist) More...
 
size_type column_number (const char[]) const
 Number of given column (throws exception if it doesn't exist) More...
 
oid column_type (size_type) const
 Type of given column. More...
 
oid column_type (int ColNum) const
 Type of given column. More...
 
oid column_type (const std::string &ColName) const
 Type of given column. More...
 
oid column_type (const char ColName[]) const
 Type of given column. More...
 
oid column_table (size_type ColNum) const
 What table did this column come from? More...
 
oid column_table (int ColNum) const
 What table did this column come from? More...
 
oid column_table (const std::string &ColName) const
 What table did this column come from? More...
 
size_type table_column (size_type) const
 What column number in its table did this result column come from? More...
 
size_type table_column (int ColNum) const
 What column number in its table did this result column come from? More...
 
size_type table_column (const std::string &ColName) const
 What column number in its table did this result column come from? More...
 

Friends

class pqxx::result
 

Arithmetic operators

const_result_iterator operator+ (difference_type, const_result_iterator)
 
const_result_iterator operator+ (difference_type) const
 
const_result_iterator operator- (difference_type) const
 
difference_type operator- (const_result_iterator) const
 

Additional Inherited Members

- Protected Attributes inherited from pqxx::row
const resultm_Home
 
size_t m_Index
 
size_type m_Begin
 
size_type m_End
 

Detailed Description

Iterator for rows in a result. Use as result::const_iterator.

A result, once obtained, cannot be modified. Therefore there is no plain iterator type for result. However its const_iterator type can be used to inspect its rows without changing them.

Member Typedef Documentation

Constructor & Destructor Documentation

pqxx::const_result_iterator::const_result_iterator ( )
pqxx::const_result_iterator::const_result_iterator ( const row t)

Member Function Documentation

bool pqxx::const_result_iterator::operator!= ( const const_result_iterator i) const
reference pqxx::const_result_iterator::operator* ( ) const
const_result_iterator pqxx::const_result_iterator::operator+ ( result::difference_type  o) const
pqxx::const_result_iterator pqxx::const_result_iterator::operator++ ( int  )
const_result_iterator& pqxx::const_result_iterator::operator++ ( )
const_result_iterator& pqxx::const_result_iterator::operator+= ( difference_type  i)
const_result_iterator pqxx::const_result_iterator::operator- ( result::difference_type  o) const
result::difference_type pqxx::const_result_iterator::operator- ( const_result_iterator  i) const

References pqxx::row::num().

pqxx::const_result_iterator pqxx::const_result_iterator::operator-- ( int  )
const_result_iterator& pqxx::const_result_iterator::operator-- ( )
const_result_iterator& pqxx::const_result_iterator::operator-= ( difference_type  i)
pointer pqxx::const_result_iterator::operator-> ( ) const

The iterator "points to" its own row, which is also itself. This allows a result to be addressed as a two-dimensional container without going through the intermediate step of dereferencing the iterator. I hope this works out to be similar to C pointer/array semantics in useful cases.

IIRC Alex Stepanov, the inventor of the STL, once remarked that having this as standard behaviour for pointers would be useful in some algorithms. So even if this makes me look foolish, I would seem to be in distinguished company.

bool pqxx::const_result_iterator::operator< ( const const_result_iterator i) const
bool pqxx::const_result_iterator::operator<= ( const const_result_iterator i) const
bool pqxx::const_result_iterator::operator== ( const const_result_iterator i) const
bool pqxx::const_result_iterator::operator> ( const const_result_iterator i) const
bool pqxx::const_result_iterator::operator>= ( const const_result_iterator i) const

Friends And Related Function Documentation

friend class pqxx::result
friend

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