protozero
Minimalistic protocol buffer decoder and encoder in C++.
Public Types | Public Member Functions | List of all members
protozero::iterator_range< T, P > Class Template Reference

#include <iterators.hpp>

Inheritance diagram for protozero::iterator_range< T, P >:
Inheritance graph
[legend]
Collaboration diagram for protozero::iterator_range< T, P >:
Collaboration graph
[legend]

Public Types

using iterator = T
 The type of the iterators in this range.
 
using value_type = typename std::iterator_traits< T >::value_type
 The value type of the underlying iterator.
 

Public Member Functions

constexpr iterator_range ()
 
constexpr iterator_range (iterator &&first_iterator, iterator &&last_iterator)
 
constexpr iterator begin () const noexcept
 Return iterator to beginning of range.
 
constexpr iterator end () const noexcept
 Return iterator to end of range.
 
constexpr iterator cbegin () const noexcept
 Return iterator to beginning of range.
 
constexpr iterator cend () const noexcept
 Return iterator to end of range.
 
constexpr std::size_t empty () const noexcept
 Return true if this range is empty.
 
value_type front () const
 
void drop_front ()
 
void swap (iterator_range &other) noexcept
 

Detailed Description

template<typename T, typename P = std::pair<T, T>>
class protozero::iterator_range< T, P >

A range of iterators based on std::pair. Created from beginning and end iterators. Used as a return type from some pbf_reader methods that is easy to use with range-based for loops.

Constructor & Destructor Documentation

◆ iterator_range() [1/2]

template<typename T, typename P = std::pair<T, T>>
constexpr protozero::iterator_range< T, P >::iterator_range ( )
inline

Default constructor. Create empty iterator_range.

◆ iterator_range() [2/2]

template<typename T, typename P = std::pair<T, T>>
constexpr protozero::iterator_range< T, P >::iterator_range ( iterator &&  first_iterator,
iterator &&  last_iterator 
)
inline

Create iterator range from two iterators.

Parameters
first_iteratorIterator to beginning or range.
last_iteratorIterator to end or range.

Member Function Documentation

◆ drop_front()

template<typename T, typename P = std::pair<T, T>>
void protozero::iterator_range< T, P >::drop_front ( )
inline

Advance beginning of range by one.

Precondition
Range must not be empty.

◆ front()

template<typename T, typename P = std::pair<T, T>>
value_type protozero::iterator_range< T, P >::front ( ) const
inline

Get element at the beginning of the range.

Precondition
Range must not be empty.

◆ swap()

template<typename T, typename P = std::pair<T, T>>
void protozero::iterator_range< T, P >::swap ( iterator_range< T, P > &  other)
inlinenoexcept

Swap the contents of this range with the other.

Parameters
otherOther range to swap data with.

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