LdsGen 1.2.6
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
ldsgen::GeneratorIterator< Generator, Value > Class Template Reference

Forward iterator for sequence generators. More...

#include <lds.hpp>

Public Types

using iterator_category = std::input_iterator_tag
 
using value_type = Value
 
using difference_type = std::ptrdiff_t
 
using pointer = const value_type *
 
using reference = value_type
 

Public Member Functions

 GeneratorIterator (Generator *g=nullptr, unsigned long idx=0)
 
auto operator* () const -> Value
 Dereference operator.
 
auto operator++ () -> GeneratorIterator &
 Pre-increment operator.
 
auto operator++ (int) -> GeneratorIterator
 Post-increment operator.
 
auto operator== (const GeneratorIterator &other) const -> bool
 Equality comparison.
 
auto operator!= (const GeneratorIterator &other) const -> bool
 Inequality comparison.
 
auto get_index () const -> unsigned long
 Get current index.
 

Detailed Description

template<typename Generator, typename Value>
class ldsgen::GeneratorIterator< Generator, Value >

Forward iterator for sequence generators.

Provides STL-compatible iterator interface for all generators. Allows use in range-based for loops and STL algorithms.

* VdCorput gen(2);
* std::vector<double> points(gen.begin(), gen.begin() + 100);
* 
Template Parameters
GeneratorThe generator class type.
ValueThe value type (double or array).

Member Typedef Documentation

◆ difference_type

template<typename Generator , typename Value >
using ldsgen::GeneratorIterator< Generator, Value >::difference_type = std::ptrdiff_t

◆ iterator_category

template<typename Generator , typename Value >
using ldsgen::GeneratorIterator< Generator, Value >::iterator_category = std::input_iterator_tag

◆ pointer

template<typename Generator , typename Value >
using ldsgen::GeneratorIterator< Generator, Value >::pointer = const value_type*

◆ reference

template<typename Generator , typename Value >
using ldsgen::GeneratorIterator< Generator, Value >::reference = value_type

◆ value_type

template<typename Generator , typename Value >
using ldsgen::GeneratorIterator< Generator, Value >::value_type = Value

Constructor & Destructor Documentation

◆ GeneratorIterator()

template<typename Generator , typename Value >
ldsgen::GeneratorIterator< Generator, Value >::GeneratorIterator ( Generator *  g = nullptr,
unsigned long  idx = 0 
)
inlineexplicit

Member Function Documentation

◆ get_index()

template<typename Generator , typename Value >
auto ldsgen::GeneratorIterator< Generator, Value >::get_index ( ) const -> unsigned long
inline

Get current index.

◆ operator!=()

template<typename Generator , typename Value >
auto ldsgen::GeneratorIterator< Generator, Value >::operator!= ( const GeneratorIterator< Generator, Value > &  other) const -> bool
inline

Inequality comparison.

◆ operator*()

template<typename Generator , typename Value >
auto ldsgen::GeneratorIterator< Generator, Value >::operator* ( ) const -> Value
inline

Dereference operator.

◆ operator++() [1/2]

template<typename Generator , typename Value >
auto ldsgen::GeneratorIterator< Generator, Value >::operator++ ( ) -> GeneratorIterator&
inline

Pre-increment operator.

◆ operator++() [2/2]

template<typename Generator , typename Value >
auto ldsgen::GeneratorIterator< Generator, Value >::operator++ ( int  ) -> GeneratorIterator
inline

Post-increment operator.

◆ operator==()

template<typename Generator , typename Value >
auto ldsgen::GeneratorIterator< Generator, Value >::operator== ( const GeneratorIterator< Generator, Value > &  other) const -> bool
inline

Equality comparison.


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