std:: incrementable_traits
|
Definiert im Header
<iterator>
|
||
|
template
<
class
I
>
struct incrementable_traits { } ; |
(1) | (seit C++20) |
|
template
<
class
T
>
requires
std::
is_object_v
<
T
>
|
(2) | (seit C++20) |
|
template
<
class
T
>
struct
incrementable_traits
<
const
T
>
|
(3) | (seit C++20) |
|
template
<
class
T
>
requires requires
{
typename
T
::
difference_type
;
}
|
(4) | (seit C++20) |
|
template
<
class
T
>
requires
(
!
requires
{
typename
T
::
difference_type
;
}
)
&&
|
(5) | (seit C++20) |
Berechnet den zugehörigen Differenztyp des Typs
I
, falls vorhanden. Ein Programm kann
incrementable_traits
für einen
programmdefinierten Typ
spezialisieren.
difference_type
definieren.
difference_type
bereit, der gleich
T::difference_type
ist.
difference_type
definieren, aber Subtraktion unterstützen.
difference_type
bereit, der gleich
std::
make_signed_t
<
decltype
(
std::
declval
<
T
>
(
)
-
std::
declval
<
T
>
(
)
)
>
ist. Die Regel für implizite Ausdrucksvariationen (siehe unten) gilt für den Ausdruck
a
-
b
.
Implizite Ausdrucksvarianten
Ein requires -Ausdruck , der einen Ausdruck verwendet, der für einen konstanten Lvalue-Operanden nicht-modifizierend ist, erfordert ebenfalls implizite Ausdrucksvarianten .
Beispiel
|
Dieser Abschnitt ist unvollständig
Grund: Kein Beispiel |
Siehe auch
|
(C++20)
|
spezifiziert, dass ein
semiregular
Typ mit Prä- und Post-Inkrementoperatoren inkrementiert werden kann
(Konzept) |
|
(C++20)
(C++20)
(C++23)
(C++20)
(C++20)
(C++20)
|
berechnet die assoziierten Typen eines Iterators
(Alias-Template) |
|
bietet eine einheitliche Schnittstelle für die Eigenschaften eines Iterators
(Klassen-Template) |