Loading...
Searching...
No Matches
bsoncxx::v_noabi::vector::iterators::packed_bit_element< Iterator > Class Template Reference

`#include <bsoncxx/v_noabi/bsoncxx/vector/iterators.hpp>`

## Description

template<typename Iterator>
class bsoncxx::v_noabi::vector::iterators::packed_bit_element< Iterator >

Iterator for elements within a packed_bit vector.

Template Parameters

  Iterator | Underlying byte iterator type

## Public Types

using | difference_type = std::ptrdiff_t
| A signed bit count.
using | iterator_category = std::random_access_iterator_tag
| This is a standard random-access iterator.
using | pointer = elements::packed_bit_element<Iterator> const*
| Element pointers aren't really a useful concept here, but this is defined for compatibility with standard random-access iterators.
using | reference = elements::packed_bit_element<Iterator> const
| References to individual bits are each bsoncxx::v_noabi::elements::packed_bit_element.
using | value_type = bool
| Values pointed to by this iterator are single bits represented by bool.

## Public Member Functions

constexpr bool | operator!= (packed_bit_element const &other) const noexcept
| Compare two bit iterators.
constexpr reference | operator* () const noexcept
| Dereference this bit iterator into a bit reference.
constexpr packed_bit_element | operator+ (difference_type const &other) const noexcept
| Calculate a signed addition of this iterator with a ptrdiff_t, moving it forward or backward the indicated number of bits. If the iterator goes out of range, behavior is undefined.
packed_bit_element & | operator++ () noexcept
| Pre-increment.
packed_bit_element | operator++ (int) noexcept
| Post-increment.
packed_bit_element & | operator+= (difference_type const &other) noexcept
| Advance this iterator forward by the indicated number of bits.
constexpr packed_bit_element | operator- (difference_type const &other) const noexcept
| Calculate a signed subtraction of a ptrdiff_t from this iterator, moving it backward or forward the indicated number of bits. If the iterator goes out of range, behavior is undefined.
constexpr difference_type | operator- (packed_bit_element const &other) const noexcept
| Calculate the difference in position between two bit iterators If the two iterators do not point into the same vector, behavior is undefined.
packed_bit_element & | operator-- () noexcept
| Pre-decrement.
packed_bit_element | operator-- (int) noexcept
| Post-decrement.
packed_bit_element & | operator-= (difference_type const &other) noexcept
| Move this iterator backward by the indicated number of bits.
constexpr bool | operator< (packed_bit_element const &other) const noexcept
| Compare two bit iterators.
constexpr bool | operator<= (packed_bit_element const &other) const noexcept
| Compare two bit iterators.
constexpr bool | operator== (packed_bit_element const &other) const noexcept
| Compare two bit iterators.
constexpr bool | operator> (packed_bit_element const &other) const noexcept
| Compare two bit iterators.
constexpr bool | operator>= (packed_bit_element const &other) const noexcept
| Compare two bit iterators.

## Member Typedef Documentation

## difference_type

template<typename Iterator>

using bsoncxx::v_noabi::vector::iterators::packed_bit_element< Iterator >::difference_type = std::ptrdiff_t

A signed bit count.

## iterator_category

template<typename Iterator>

using bsoncxx::v_noabi::vector::iterators::packed_bit_element< Iterator >::iterator_category = std::random_access_iterator_tag

This is a standard random-access iterator.

## pointer

template<typename Iterator>

using bsoncxx::v_noabi::vector::iterators::packed_bit_element< Iterator >::pointer = elements::packed_bit_element<Iterator> const*

Element pointers aren't really a useful concept here, but this is defined for compatibility with standard random-access iterators.

## reference

template<typename Iterator>

using bsoncxx::v_noabi::vector::iterators::packed_bit_element< Iterator >::reference = elements::packed_bit_element<Iterator> const

References to individual bits are each bsoncxx::v_noabi::elements::packed_bit_element.

## value_type

template<typename Iterator>

using bsoncxx::v_noabi::vector::iterators::packed_bit_element< Iterator >::value_type = bool

Values pointed to by this iterator are single bits represented by bool.

## Member Function Documentation

## operator!=()

template<typename Iterator>

bool bsoncxx::v_noabi::vector::iterators::packed_bit_element< Iterator >::operator!= | ( | packed_bit_element< Iterator > const & | other | ) | const

inline constexpr noexcept

Compare two bit iterators.

## operator*()

template<typename Iterator>

reference bsoncxx::v_noabi::vector::iterators::packed_bit_element< Iterator >::operator* | ( |  | ) | const

inline constexpr noexcept

Dereference this bit iterator into a bit reference.

Returns
  An individual bit reference, as a bsoncxx::v_noabi::elements::packed_bit_element.

## operator+()

template<typename Iterator>

packed_bit_element bsoncxx::v_noabi::vector::iterators::packed_bit_element< Iterator >::operator+ | ( | difference_type const & | other | ) | const

inline constexpr noexcept

Calculate a signed addition of this iterator with a ptrdiff_t, moving it forward or backward the indicated number of bits. If the iterator goes out of range, behavior is undefined.

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

template<typename Iterator>

packed_bit_element & bsoncxx::v_noabi::vector::iterators::packed_bit_element< Iterator >::operator++ | ( |  | ) |

inline noexcept

Pre-increment.

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

template<typename Iterator>

packed_bit_element bsoncxx::v_noabi::vector::iterators::packed_bit_element< Iterator >::operator++ | ( | int |  | ) |

inline noexcept

Post-increment.

## operator+=()

template<typename Iterator>

packed_bit_element & bsoncxx::v_noabi::vector::iterators::packed_bit_element< Iterator >::operator+= | ( | difference_type const & | other | ) |

inline noexcept

Advance this iterator forward by the indicated number of bits.

## operator-() [1/2]

template<typename Iterator>

packed_bit_element bsoncxx::v_noabi::vector::iterators::packed_bit_element< Iterator >::operator- | ( | difference_type const & | other | ) | const

inline constexpr noexcept

Calculate a signed subtraction of a ptrdiff_t from this iterator, moving it backward or forward the indicated number of bits. If the iterator goes out of range, behavior is undefined.

## operator-() [2/2]

template<typename Iterator>

difference_type bsoncxx::v_noabi::vector::iterators::packed_bit_element< Iterator >::operator- | ( | packed_bit_element< Iterator > const & | other | ) | const

inline constexpr noexcept

Calculate the difference in position between two bit iterators If the two iterators do not point into the same vector, behavior is undefined.

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

template<typename Iterator>

packed_bit_element & bsoncxx::v_noabi::vector::iterators::packed_bit_element< Iterator >::operator-- | ( |  | ) |

inline noexcept

Pre-decrement.

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

template<typename Iterator>

packed_bit_element bsoncxx::v_noabi::vector::iterators::packed_bit_element< Iterator >::operator-- | ( | int |  | ) |

inline noexcept

Post-decrement.

## operator-=()

template<typename Iterator>

packed_bit_element & bsoncxx::v_noabi::vector::iterators::packed_bit_element< Iterator >::operator-= | ( | difference_type const & | other | ) |

inline noexcept

Move this iterator backward by the indicated number of bits.

## operator<()

template<typename Iterator>

bool bsoncxx::v_noabi::vector::iterators::packed_bit_element< Iterator >::operator< | ( | packed_bit_element< Iterator > const & | other | ) | const

inline constexpr noexcept

Compare two bit iterators.

## operator<=()

template<typename Iterator>

bool bsoncxx::v_noabi::vector::iterators::packed_bit_element< Iterator >::operator<= | ( | packed_bit_element< Iterator > const & | other | ) | const

inline constexpr noexcept

Compare two bit iterators.

## operator==()

template<typename Iterator>

bool bsoncxx::v_noabi::vector::iterators::packed_bit_element< Iterator >::operator== | ( | packed_bit_element< Iterator > const & | other | ) | const

inline constexpr noexcept

Compare two bit iterators.

## operator>()

template<typename Iterator>

bool bsoncxx::v_noabi::vector::iterators::packed_bit_element< Iterator >::operator> | ( | packed_bit_element< Iterator > const & | other | ) | const

inline constexpr noexcept

Compare two bit iterators.

## operator>=()

template<typename Iterator>

bool bsoncxx::v_noabi::vector::iterators::packed_bit_element< Iterator >::operator>= | ( | packed_bit_element< Iterator > const & | other | ) | const

inline constexpr noexcept

Compare two bit iterators.

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

- bsoncxx/v_noabi/bsoncxx/vector/iterators-fwd.hpp
- bsoncxx/v_noabi/bsoncxx/vector/iterators.hpp