Console Library 8.0.0
A header-only library that makes C++ simple
Loading...
Searching...
No Matches
console::Generator< Derived, T >::iterator Class Reference

生成器迭代器类,实现输入迭代器接口。 More...

#include <gen.h>

Public Types

using value_type = T
using reference = T
using pointer = void
using difference_type = std::ptrdiff_t
using iterator_category = std::input_iterator_tag

Public Member Functions

 iterator (const Derived &d)
 构造函数,使用派生类引用初始化迭代器。
reference operator* ()
 解引用操作符,获取当前值。
iterator & operator++ ()
 前缀自增操作符,移动到下一个元素。
const iterator operator++ (int)
 后缀自增操作符,移动到下一个元素。
bool operator== (const iterator &)
 相等比较操作符。
bool operator!= (const iterator &)
 不等比较操作符。
T next ()
 获取当前值并移动到下一个位置。
bool done ()
 检查生成器是否已完成。

Private Attributes

Derived d

Detailed Description

template<class Derived, class T>
class console::Generator< Derived, T >::iterator

生成器迭代器类,实现输入迭代器接口。

Member Typedef Documentation

◆ difference_type

template<class Derived, class T>
using console::Generator< Derived, T >::iterator::difference_type = std::ptrdiff_t

◆ iterator_category

template<class Derived, class T>
using console::Generator< Derived, T >::iterator::iterator_category = std::input_iterator_tag

◆ pointer

template<class Derived, class T>
using console::Generator< Derived, T >::iterator::pointer = void

◆ reference

template<class Derived, class T>
using console::Generator< Derived, T >::iterator::reference = T

◆ value_type

template<class Derived, class T>
using console::Generator< Derived, T >::iterator::value_type = T

Constructor & Destructor Documentation

◆ iterator()

template<class Derived, class T>
console::Generator< Derived, T >::iterator::iterator ( const Derived & d)
inline

构造函数,使用派生类引用初始化迭代器。

Parameters
d派生类对象的引用。

Member Function Documentation

◆ done()

template<class Derived, class T>
bool console::Generator< Derived, T >::iterator::done ( )
inline

检查生成器是否已完成。

Returns
如果已完成返回true,否则返回false。

◆ next()

template<class Derived, class T>
T console::Generator< Derived, T >::iterator::next ( )
inline

获取当前值并移动到下一个位置。

Returns
当前值。
Exceptions
StopIteration如果生成器已完成。

◆ operator!=()

template<class Derived, class T>
bool console::Generator< Derived, T >::iterator::operator!= ( const iterator & )
inline

不等比较操作符。

Returns
如果生成器未完成则返回true,否则返回false。

◆ operator*()

template<class Derived, class T>
reference console::Generator< Derived, T >::iterator::operator* ( )
inline

解引用操作符,获取当前值。

Returns
当前值。
Exceptions
StopIteration如果生成器已完成。

◆ operator++() [1/2]

template<class Derived, class T>
iterator & console::Generator< Derived, T >::iterator::operator++ ( )
inline

前缀自增操作符,移动到下一个元素。

Returns
自增后的迭代器引用。

◆ operator++() [2/2]

template<class Derived, class T>
const iterator console::Generator< Derived, T >::iterator::operator++ ( int )
inline

后缀自增操作符,移动到下一个元素。

Returns
自增前的迭代器副本。

◆ operator==()

template<class Derived, class T>
bool console::Generator< Derived, T >::iterator::operator== ( const iterator & )
inline

相等比较操作符。

Returns
如果生成器已完成则返回true,否则返回false。

Member Data Documentation

◆ d

template<class Derived, class T>
Derived console::Generator< Derived, T >::iterator::d
private

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