MongoDB C++ Driver 4.1.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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
IteratorUnderlying 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_elementoperator++ () noexcept
 Pre-increment.
 
packed_bit_element operator++ (int) noexcept
 Post-increment.
 
packed_bit_elementoperator+= (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_elementoperator-- () noexcept
 Pre-decrement.
 
packed_bit_element operator-- (int) noexcept
 Post-decrement.
 
packed_bit_elementoperator-= (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
inlineconstexprnoexcept

Compare two bit iterators.

◆ operator*()

template<typename Iterator>
reference bsoncxx::v_noabi::vector::iterators::packed_bit_element< Iterator >::operator* ( ) const
inlineconstexprnoexcept

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
inlineconstexprnoexcept

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++ ( )
inlinenoexcept

Pre-increment.

◆ operator++() [2/2]

template<typename Iterator>
packed_bit_element bsoncxx::v_noabi::vector::iterators::packed_bit_element< Iterator >::operator++ ( int )
inlinenoexcept

Post-increment.

◆ operator+=()

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

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
inlineconstexprnoexcept

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
inlineconstexprnoexcept

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-- ( )
inlinenoexcept

Pre-decrement.

◆ operator--() [2/2]

template<typename Iterator>
packed_bit_element bsoncxx::v_noabi::vector::iterators::packed_bit_element< Iterator >::operator-- ( int )
inlinenoexcept

Post-decrement.

◆ operator-=()

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

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
inlineconstexprnoexcept

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
inlineconstexprnoexcept

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
inlineconstexprnoexcept

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
inlineconstexprnoexcept

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
inlineconstexprnoexcept

Compare two bit iterators.


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