operator==(std::ranges::take_view::sentinel<Const>)
friend constexpr bool
operator==( const std::counted_iterator<ranges::iterator_t<Base>>& y,
const /*sentinel*/& x );
|
(1) | (seit C++20) |
template< bool OtherC = !Const >
requires std::sentinel_for<ranges::sentinel_t<Base>,
ranges::iterator_t</*add-const-if*/<OtherC, V>>>
friend constexpr bool
operator==( const std::counted_iterator<
ranges::iterator_t</*add-const-if*/<OtherC, V>>>& y,
const /*sentinel*/& x );
|
(2) | (seit C++20) |
Vergleicht eine take_view::/*sentinel*/ mit einer std::counted_iterator (typischerweise erhalten von einem Aufruf von take_view::begin).
Gibt true zurück, wenn y auf das N-te Element zeigt (wobei N die Zahl ist, die an den Konstruktor von take_view übergeben wurde), oder wenn das Ende der zugrunde liegenden Ansicht erreicht ist.
Das nur zur Darstellung dienende Alias-Template /*add-const-if*/ ist definiert als
template<bool C, class T>using /*add-const-if*/ = std::conditional_t<C, const T, T>;.
Diese Funktionen sind für die gewöhnliche unqualifizierte oder qualifizierte Namenssuche nicht sichtbar und können nur durch argumentabhängige Namenssuche gefunden werden, wenn std::ranges::take_view::sentinel<Const> eine assoziierte Klasse der Argumente ist.
Der != Operator wird aus synthetisiert operator==.
Parameter
| y | - | std::counted_iterator zu vergleichender Iterator |
| x | - | zu vergleichender Sentinel |
Rückgabewert
y.
count
(
)
==
0
||
y.
base
(
)
==
x.
end_
, wobei
end_
den zugrundeliegenden Sentinel bezeichnet.
Beispiel
|
Dieser Abschnitt ist unvollständig
Grund: Kein Beispiel |
Fehlerberichte
Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | Angewendet auf | Verhalten wie veröffentlicht | Korrektes Verhalten |
|---|---|---|---|
| LWG 3449 | C++20 |
Vergleich zwischen Iterator und Sentinel von
unterschiedlich const-qualifizierten
take_view
wurde nicht unterstützt
|
Unterstützung hinzugefügt, wenn möglich |