cprover
concat_iteratort< first_iteratort, second_iteratort > Struct Template Reference

On increment, increments a first iterator and when the corresponding end iterator is reached, starts to increment a second one. More...

#include <range.h>

Public Types

using difference_type = typename first_iteratort::difference_type
 
using value_type = typename first_iteratort::value_type
 
using pointer = const value_type *
 
using reference = const value_type &
 
using iterator_category = std::forward_iterator_tag
 

Public Member Functions

bool operator== (const concat_iteratort &other) const
 
bool operator!= (const concat_iteratort &other) const
 
concat_iteratortoperator++ ()
 Preincrement operator. More...
 
const concat_iteratort operator++ (int)
 Postincrement operator. More...
 
value_typeoperator* ()
 
value_typeoperator-> ()
 
const value_typeoperator* () const
 
const value_typeoperator-> () const
 
 concat_iteratort (first_iteratort first_begin, first_iteratort first_end, second_iteratort second_begin)
 

Private Attributes

first_iteratort first_begin
 
first_iteratort first_end
 
second_iteratort second_begin
 

Detailed Description

template<typename first_iteratort, typename second_iteratort>
struct concat_iteratort< first_iteratort, second_iteratort >

On increment, increments a first iterator and when the corresponding end iterator is reached, starts to increment a second one.

Dereference corresponds to dereference on the first iterator if the end is not reached yet, and on the second one otherwise.

Definition at line 206 of file range.h.

Member Typedef Documentation

◆ difference_type

template<typename first_iteratort, typename second_iteratort>
using concat_iteratort< first_iteratort, second_iteratort >::difference_type = typename first_iteratort::difference_type

Definition at line 209 of file range.h.

◆ iterator_category

template<typename first_iteratort, typename second_iteratort>
using concat_iteratort< first_iteratort, second_iteratort >::iterator_category = std::forward_iterator_tag

Definition at line 213 of file range.h.

◆ pointer

template<typename first_iteratort, typename second_iteratort>
using concat_iteratort< first_iteratort, second_iteratort >::pointer = const value_type *

Definition at line 211 of file range.h.

◆ reference

template<typename first_iteratort, typename second_iteratort>
using concat_iteratort< first_iteratort, second_iteratort >::reference = const value_type &

Definition at line 212 of file range.h.

◆ value_type

template<typename first_iteratort, typename second_iteratort>
using concat_iteratort< first_iteratort, second_iteratort >::value_type = typename first_iteratort::value_type

Definition at line 210 of file range.h.

Constructor & Destructor Documentation

◆ concat_iteratort()

template<typename first_iteratort, typename second_iteratort>
concat_iteratort< first_iteratort, second_iteratort >::concat_iteratort ( first_iteratort  first_begin,
first_iteratort  first_end,
second_iteratort  second_begin 
)
inline

Definition at line 276 of file range.h.

Member Function Documentation

◆ operator!=()

template<typename first_iteratort, typename second_iteratort>
bool concat_iteratort< first_iteratort, second_iteratort >::operator!= ( const concat_iteratort< first_iteratort, second_iteratort > &  other) const
inline

Definition at line 225 of file range.h.

◆ operator*() [1/2]

template<typename first_iteratort, typename second_iteratort>
value_type& concat_iteratort< first_iteratort, second_iteratort >::operator* ( )
inline

Definition at line 248 of file range.h.

◆ operator*() [2/2]

template<typename first_iteratort, typename second_iteratort>
const value_type& concat_iteratort< first_iteratort, second_iteratort >::operator* ( ) const
inline

Definition at line 262 of file range.h.

◆ operator++() [1/2]

template<typename first_iteratort, typename second_iteratort>
concat_iteratort& concat_iteratort< first_iteratort, second_iteratort >::operator++ ( )
inline

Preincrement operator.

Definition at line 231 of file range.h.

◆ operator++() [2/2]

template<typename first_iteratort, typename second_iteratort>
const concat_iteratort concat_iteratort< first_iteratort, second_iteratort >::operator++ ( int  )
inline

Postincrement operator.

Definition at line 241 of file range.h.

◆ operator->() [1/2]

template<typename first_iteratort, typename second_iteratort>
value_type* concat_iteratort< first_iteratort, second_iteratort >::operator-> ( )
inline

Definition at line 255 of file range.h.

◆ operator->() [2/2]

template<typename first_iteratort, typename second_iteratort>
const value_type* concat_iteratort< first_iteratort, second_iteratort >::operator-> ( ) const
inline

Definition at line 269 of file range.h.

◆ operator==()

template<typename first_iteratort, typename second_iteratort>
bool concat_iteratort< first_iteratort, second_iteratort >::operator== ( const concat_iteratort< first_iteratort, second_iteratort > &  other) const
inline

Definition at line 219 of file range.h.

Member Data Documentation

◆ first_begin

template<typename first_iteratort, typename second_iteratort>
first_iteratort concat_iteratort< first_iteratort, second_iteratort >::first_begin
private

Definition at line 287 of file range.h.

◆ first_end

template<typename first_iteratort, typename second_iteratort>
first_iteratort concat_iteratort< first_iteratort, second_iteratort >::first_end
private

Definition at line 288 of file range.h.

◆ second_begin

template<typename first_iteratort, typename second_iteratort>
second_iteratort concat_iteratort< first_iteratort, second_iteratort >::second_begin
private

Definition at line 289 of file range.h.


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