std::experimental::ranges:: difference_type
|
Definiert im Header
<experimental/ranges/iterator>
|
||
|
template
<
class
I
>
struct difference_type { } ; |
(1) | |
|
template
<
class
T
>
struct difference_type < T * > ; |
(2) | |
|
template
<
class
T
>
struct difference_type < const T > : difference_type < std:: decay_t < T >> { } ; |
(3) | |
|
template
<
class
T
>
requires requires
{
typename
T
::
difference_type
;
}
|
(4) | |
|
template
<
class
T
>
requires
!
requires
{
typename
T
::
difference_type
;
}
&&
|
(5) | |
Berechnet den zugehörigen Differenztyp des Typs
I
, falls vorhanden. Benutzer können
difference_type
für einen programmdefinierten Typ spezialisieren.
T
ein Objekttyp ist, stellt es einen Member-Typ
type
bereit, der gleich
std::ptrdiff_t
ist. Andernfalls gibt es kein Member
type
.
difference_type
definieren. Stellt einen Member-Typ
type
bereit, der gleich
T::difference_type
ist.
difference_type
definieren, aber Subtraktion unterstützen. Stellt einen Member-Typ
type
bereit, der gleich
std::
make_signed_t
<
decltype
(
std::
declval
<
T
>
(
)
-
std::
declval
<
T
>
(
)
)
>
ist.
Hilfs-Alias-Template
|
template
<
class
T
>
using difference_type_t = typename ranges :: difference_type < T > :: type ; |
(ranges TS) | |
Beispiel
|
Dieser Abschnitt ist unvollständig
Grund: Kein Beispiel |
Siehe auch
spezifiziert, dass ein
Semiregular
Typ mit Prä- und Post-Inkrementoperatoren inkrementiert werden kann
(Konzept) |
|
|
Kompatibilitäts-Merkmalsklasse, die die assoziierten Typen eines Iterators sammelt
(Alias-Template) |