operator==(std::ranges::take_view::sentinel<Const>)
| friend constexpr bool operator==( const std::counted_iterator<ranges::iterator_t<Base>>& y, |
(1) | (C++20以降) |
| template< bool OtherC = !Const > requires std::sentinel_for<ranges::sentinel_t<Base>, |
(2) | (C++20以降) |
要素数 N(take_view のコンストラクタに渡された値)の N 番目の要素を指し越しているかどうか、または基盤となるビューの終端に達しているかどうかを比較します。
std::counted_iterator(通常は take_view::begin の呼び出しから取得される)と take_view::sentinel を比較します。
これにより、y が N 番目の要素を指し越している(N は take_view のコンストラクタに渡された数)場合、または基盤となるビューの終端に達している場合に true を返します。
exposition-only のエイリアステンプレート /*add-const-if*/ は次のように定義されます。
template<bool C, class T>.
using /*add-const-if*/ = std::conditional_t<C, const T, T>;
!= 演算子は operator== から合成される。
目次 |
これらの関数は、通常の 非修飾または 修飾ルックアップからは見えず、std::ranges::take_view::sentinel<Const> が引数に関連付けられたクラスである場合にのみ、 引数依存の名前探索 (ADL) によって検出されます。
| y | - | [編集] パラメータ |
| x | - | 比較するセンチネル |
std::counted_iterator を比較します。
[編集] 戻り値
y.count() == 0 || y.base() == x.end_、ここで end_ は基盤となるセンチネルを示します。
| このセクションは未完成です 理由: 例がありません |
[編集] 例
以下の動作変更を伴う欠陥報告が、以前に公開されたC++標準に遡って適用されました。
| DR | 適用対象 | 公開された動作 | 正しい動作 |
|---|---|---|---|
| [編集] 不具合報告 | C++20 | LWG 3449 異なる const 修飾の take_view のイテレータとセンチネルとの比較がサポートされていませんでした。 |
可能な場合にサポートされるようになりました。 |