std:: sized_sentinel_for, std:: disable_sized_sentinel_for
|
Definiert in Header
<iterator>
|
||
|
template
<
class
S,
class
I
>
concept sized_sentinel_for
=
|
(1) | (seit C++20) |
|
template
<
class
S,
class
I
>
inline constexpr bool disable_sized_sentinel_for = false ; |
(2) | (seit C++20) |
sized_sentinel_for
Konzept spezifiziert, dass ein Objekt des Iteratortyps
I
und ein Objekt des Sentineltyps
S
subtrahiert werden können, um den Abstand zwischen ihnen in konstanter Zeit zu berechnen.
disable_sized_sentinel_for
Variable Template kann verwendet werden, um zu verhindern, dass Iteratoren und Sentinel, die subtrahiert werden können, aber nicht tatsächlich das Konzept
sized_sentinel_for
modellieren, das Konzept erfüllen.
disable_sized_sentinel_for
für cv-unqualifizierte Nicht-Array-Objekttypen
S
und
I
spezialisieren, sofern mindestens einer davon ein
programmdefinierter Typ
ist. Solche Spezialisierungen sind in
konstanten Ausdrücken
verwendbar und haben den Typ
const
bool
.
Inhaltsverzeichnis |
Semantische Anforderungen
Sei
i
ein Iterator vom Typ
I
, und
s
ein Sentinel vom Typ
S
, sodass
[
i
,
s
)
einen Bereich bezeichnet. Sei
n
die kleinste Anzahl von Anwendungen von
++
i
, die notwendig ist, damit
bool
(
i
==
s
)
den Wert
true
annimmt.
I
und
S
modellieren
sized_sentinel_for<S, I>
nur dann, wenn alle folgenden Bedingungen erfüllt sind:
- Wenn n durch std:: iter_difference_t < I > darstellbar ist, dann ist s - i wohldefiniert und gleich n .
- Wenn - n durch std:: iter_difference_t < I > darstellbar ist, dann ist i - s wohldefiniert und gleich - n .
Gleichheitserhaltung
Ausdrücke, die in requires expressions der Standardbibliothek-Konzepte deklariert werden, müssen equality-preserving sein (sofern nicht anders angegeben).
Implizite Ausdrucksvarianten
Ein requires -Ausdruck , der einen Ausdruck verwendet, der für einen konstanten Lvalue-Operanden nicht-modifizierend ist, erfordert ebenfalls implizite Ausdrucksvarianten .
Siehe auch
|
(C++20)
|
spezifiziert, dass ein Bereich seine Größe in konstanter Zeit kennt
(Konzept) |
|
(C++20)
|
gibt einen Integer gleich der Größe eines Bereichs zurück
(Anpassungspunktobjekt) |