std::experimental::ranges:: value_type
|
Definiert in Header
<experimental/ranges/iterator>
|
||
|
template
<
class
I
>
struct value_type { } ; |
(1) | |
|
template
<
class
T
>
struct value_type < T * > ; |
(2) | |
|
template
<
class
I
>
erfordert
std::
is_array
<
I
>
::
value
|
(3) | |
|
template
<
class
T
>
struct value_type < const T > : value_type < std:: decay_t < T >> { } ; |
(4) | |
|
template
<
class
T
>
erfordert requires
{
typename
T
::
value_type
;
}
|
(5) | |
|
template
<
class
T
>
erfordert requires
{
typename
T
::
element_type
;
}
|
(6) | |
Berechnet den zugehörigen Werttyp des Typs
I
, falls vorhanden. Benutzer können
value_type
für einen programmdefinierten Typ spezialisieren.
T
ein Objekttyp ist, stellt einen Membertyp
type
bereit, der gleich
std::
remove_cv_t
<
T
>
ist. Andernfalls gibt es kein Member
type
.
value_type
definieren. Falls
T::value_type
ein Objekttyp ist, stellt sie einen Member-Typ
type
bereit, der gleich
T::value_type
ist. Andernfalls existiert kein Member
type
.
element_type
definieren (z.B.
std::shared_ptr
). Falls
T::element_type
ein Objekttyp ist, stellt es einen Member-Typ
type
bereit, der gleich
std::
remove_cv_t
<
typename
T
::
element_type
>
ist. Andernfalls existiert kein Member
type
.
Inhaltsverzeichnis |
Hilfs-Alias-Template
|
template
<
class
T
>
using value_type_t = typename ranges :: value_type < T > :: type ; |
(ranges TS) | |
Hinweise
Wenn ein Typ sowohl ein
value_type
-Mitglied als auch ein
element_type
-Mitglied enthält, dann sind die Spezialisierungen
(5)
und
(6)
mehrdeutig.
value_type
ist für die Verwendung mit
Readable
-Typen wie Iteratoren vorgesehen. Es ist nicht für die Verwendung mit Bereichen gedacht.
Beispiel
|
Dieser Abschnitt ist unvollständig
Grund: Kein Beispiel |
Siehe auch
spezifiziert, dass ein Typ durch Anwendung von Operator
*
lesbar ist
(Konzept) |
|
|
Kompatibilitäts-Merkmalsklasse, die assoziierte Typen eines Iterators sammelt
(Alias-Template) |