std::ranges::repeat_view<W, Bound>::iterator
struct /*iterator*/; |
(説明用*) | |
ranges::repeat_view<W, Bound>::iterator は、ranges::repeat_view<W, Bound> の begin() および end() から返されるイテレータの型です。
[edit] Nested types
公開専用型 | |
| 型 | 定義 |
index-type
|
std::conditional_t<std::same_as<Bound, std::unreachable_sentinel_t>, std::ptrdiff_t, Bound>(説明専用メンバ型*) |
イテレータプロパティ型 | |
| 型 | 定義 |
iterator_concept
|
std::random_access_iterator_tag |
iterator_category
|
std::random_access_iterator_tag |
value_type
|
W
|
difference_type |
std::conditional_t<is-signed-integer-like <index-type >, index-type , iota-diff-t <index-type >> |
[edit] Data members
| メンバ | 定義 |
const W* value_ |
繰り返す値へのポインタ (説明用のメンバオブジェクト*) |
index-type current_ |
現在の位置 (説明用のメンバオブジェクト*) |
[edit] Member functions
std::ranges::repeat_view::iterator::iterator
| /*iterator*/() = default; |
(1) | (C++23から) |
constexpr explicit /*iterator*/ ( const W* value, /*index-type*/ b = /*index-type*/() ); |
(2) | (C++23から) (説明用*) |
イテレータを構築する。オーバーロード (2) は ranges::repeat_view の begin() および end() によって呼び出される。
std::ranges::repeat_view::iterator::operator*
| constexpr const W& operator*() const noexcept; |
(C++23から) | |
value_ を逆参照した結果を返す。
std::ranges::repeat_view::iterator::operator[]
| constexpr const W& operator[]( difference_type n ) const noexcept; |
(C++23から) | |
*(*this + n) を返す。
std::ranges::repeat_view::iterator::operator++
| constexpr /*iterator*/& operator++(); |
(1) | (C++23から) |
| constexpr void operator++(int); |
(2) | (C++23から) |
current_ ; return *this; と同等。std::ranges::repeat_view::iterator::operator--
| constexpr /*iterator*/& operator--(); |
(1) | (C++23から) |
| constexpr /*iterator*/ operator--(int); |
(2) | (C++23から) |
current_ ; return *this; と同等。std::ranges::repeat_view::iterator::operator+=
| constexpr /*iterator*/& operator+=( difference_type n ); |
(C++23から) | |
current_ += n; return *this; と同等。
Bound が std::unreachable_sentinel_t でなく、かつ current_ + n が負の場合、動作は未定義である。
std::ranges::repeat_view::iterator::operator-=
| constexpr /*iterator*/& operator-=( difference_type n ); |
(C++23から) | |
current_ -= n; return *this; と同等。
Bound が std::unreachable_sentinel_t でなく、かつ current_ - n が負の場合、動作は未定義である。
[edit] Non-member functions
operator==, <=>(std::ranges::repeat_view::iterator)
| friend constexpr bool operator== ( const /*iterator*/& x, const /*iterator*/& y ); |
(1) | (C++23から) |
| friend constexpr auto operator<=> ( const /*iterator*/& x, const /*iterator*/& y ); |
(2) | (C++23から) |
!= 演算子は operator== から合成される。
これらの関数は、通常の 非修飾 または 修飾 ルックアップからは見えず、iterator が引数に関連付けられたクラスである場合の 引数依存名探索 によってのみ見つけることができる。
operator+(std::ranges::repeat_view::iterator)
| friend constexpr /*iterator*/ operator+ ( /*iterator*/ i, difference_type n ); |
(1) | (C++23から) |
| friend constexpr /*iterator*/ operator+ ( difference_type n, /*iterator*/ i ); |
(2) | (C++23から) |
i += n; return i; と同等。
これらの関数は、通常の 非修飾 または 修飾 ルックアップからは見えず、iterator が引数に関連付けられたクラスである場合の 引数依存名探索 によってのみ見つけることができる。
operator-(std::ranges::repeat_view::iterator)
| friend constexpr /*iterator*/ operator- ( /*iterator*/ i, difference_type n ); |
(1) | (C++23から) |
| friend constexpr difference_type operator- ( const /*iterator*/& x, const /*iterator*/& y ); |
(2) | (C++23から) |
difference_type>(x.current_ ) - static_cast<difference_type>(y.current_ ) を返す。これらの関数は、通常の 非修飾 または 修飾 ルックアップからは見えず、iterator が引数に関連付けられたクラスである場合の 引数依存名探索 によってのみ見つけることができる。
[edit] Notes
iterator は常に random_access_iterator である。