pqxx::const_result_iterator Class Reference

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

`#include <result_iterator.hxx>`

Inheritance diagram for pqxx::const_result_iterator:
[legend]

## Public Types

using | iterator_category = std::random_access_iterator_tag
using | value_type = const row
using | pointer = const row *
using | reference = row
using | size_type = result_size_type
using | difference_type = result_difference_type
Public Types inherited from pqxx::row
using | size_type = row_size_type
using | difference_type = row_difference_type
using | const_iterator = const_row_iterator
using | iterator = const_iterator
using | reference = field
using | pointer = const_row_iterator
using | const_reverse_iterator = const_reverse_row_iterator
using | reverse_iterator = const_reverse_iterator

## Public Member Functions

| const_result_iterator () noexcept
| const_result_iterator (const row &t) noexcept
Dereferencing operators
pointer | operator-> () const
reference | operator* () const
Manipulations
const_result_iterator | operator++ (int)
const_result_iterator & | operator++ ()
const_result_iterator | operator-- (int)
const_result_iterator & | operator-- ()
const_result_iterator & | operator+= (difference_type i)
const_result_iterator & | operator-= (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 ()=default
| row (result r, size_t i) noexcept
| ~row () noexcept=default
PQXX_PURE bool | operator== (const row &) const noexcept
bool | operator!= (const row &rhs) const noexcept
const_iterator | begin () const noexcept
const_iterator | cbegin () const noexcept
const_iterator | end () const noexcept
const_iterator | cend () const noexcept
reference | front () const noexcept
reference | back () const 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 noexcept
reference | operator[] (int) const 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 | size () const noexcept
void | swap (row &) noexcept
size_t | rownumber () const noexcept
| Row number, assuming this is a real row and not end()/rend(). More...
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...
size_t | num () const
row | slice (size_type Begin, size_type End) const
PQXX_PURE bool | empty () const noexcept

## Arithmetic operators

class | pqxx::result
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
result | m_result
| Result set of which this is one row. More...
long | m_index = 0
| Row number. More...
size_type | m_begin = 0
| First column in slice. This row ignores lower-numbered columns. More...
size_type | m_end = 0
| End column in slice. This row only sees lower-numbered columns. More...

## 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

## difference_type

using pqxx::const_result_iterator::difference_type = result_difference_type

## iterator_category

using pqxx::const_result_iterator::iterator_category = std::random_access_iterator_tag

## pointer

using pqxx::const_result_iterator::pointer = const row *

## reference

using pqxx::const_result_iterator::reference = row

## size_type

using pqxx::const_result_iterator::size_type = result_size_type

## value_type

using pqxx::const_result_iterator::value_type = const row

## Constructor & Destructor Documentation

## const_result_iterator() [1/2]

pqxx::const_result_iterator::const_result_iterator | ( |  | ) |

noexcept

## const_result_iterator() [2/2]

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

noexcept

## Member Function Documentation

## operator!=()

bool pqxx::const_result_iterator::operator!= | ( | const const_result_iterator & | i | ) | const

## operator*()

reference pqxx::const_result_iterator::operator* | ( |  | ) | const

## operator+()

const_result_iterator pqxx::const_result_iterator::operator+ | ( | result::difference_type | o | ) | const

References pqxx::row::m_index, and pqxx::row::m_result.

## operator++() [1/2]

const_result_iterator& pqxx::const_result_iterator::operator++ | ( |  | ) |

## operator++() [2/2]

pqxx::const_result_iterator pqxx::const_result_iterator::operator++ | ( | int |  | ) |

## operator+=()

const_result_iterator& pqxx::const_result_iterator::operator+= | ( | difference_type | i | ) |

## operator-() [1/2]

result::difference_type pqxx::const_result_iterator::operator- | ( | const_result_iterator | i | ) | const

References pqxx::row::num().

## operator-() [2/2]

const_result_iterator pqxx::const_result_iterator::operator- | ( | result::difference_type | o | ) | const

References pqxx::row::m_index, and pqxx::row::m_result.

## operator--() [1/2]

const_result_iterator& pqxx::const_result_iterator::operator-- | ( |  | ) |

## operator--() [2/2]

pqxx::const_result_iterator pqxx::const_result_iterator::operator-- | ( | int |  | ) |

## operator-=()

const_result_iterator& pqxx::const_result_iterator::operator-= | ( | difference_type | i | ) |

## operator->()

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.

## operator<()

bool pqxx::const_result_iterator::operator< | ( | const const_result_iterator & | i | ) | const

## operator<=()

bool pqxx::const_result_iterator::operator<= | ( | const const_result_iterator & | i | ) | const

## operator==()

bool pqxx::const_result_iterator::operator== | ( | const const_result_iterator & | i | ) | const

## operator>()

bool pqxx::const_result_iterator::operator> | ( | const const_result_iterator & | i | ) | const

## operator>=()

bool pqxx::const_result_iterator::operator>= | ( | const const_result_iterator & | i | ) | const

## Friends And Related Function Documentation

## operator+

const_result_iterator operator+ | ( | result::difference_type | o,
|  | const_result_iterator | i
| ) |  |

friend

## pqxx::result

friend class pqxx::result

friend

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

- result_iterator.hxx
- result.cxx