std::experimental::ranges:: value_type
|
Défini dans l'en-tête
<experimental/ranges/iterator>
|
||
|
template
<
class
I
>
struct value_type { } ; |
(1) | |
|
template
<
class
T
>
struct value_type < T * > ; |
(2) | |
|
template
<
class
I
>
requires
std::
is_array
<
I
>
::
value
|
(3) | |
|
template
<
class
T
>
struct value_type < const T > : value_type < std:: decay_t < T >> { } ; |
(4) | |
|
template
<
class
T
>
requires requires
{
typename
T
::
value_type
;
}
|
(5) | |
|
template
<
class
T
>
requires requires
{
typename
T
::
element_type
;
}
|
(6) | |
Calcule le type de valeur associé du type
I
, le cas échéant. Les utilisateurs peuvent spécialiser
value_type
pour un type défini par le programme.
T
est un type objet, fournit un type membre
type
égal à
std::
remove_cv_t
<
T
>
. Sinon, il n'y a pas de membre
type
.
value_type
. Si
T::value_type
est un type objet, fournit un type membre
type
égal à
T::value_type
. Sinon, il n'y a pas de membre
type
.
element_type
(par exemple,
std::shared_ptr
). Si
T::element_type
est un type objet, fournit un type membre
type
égal à
std::
remove_cv_t
<
typename
T
::
element_type
>
. Sinon, il n'y a pas de membre
type
.
Table des matières |
Modèle d'alias d'assistance
|
template
<
class
T
>
using value_type_t = typename ranges :: value_type < T > :: type ; |
(TS ranges) | |
Notes
Si un type contient à la fois un membre
value_type
et un membre
element_type
, alors les spécialisations
(5)
et
(6)
sont ambiguës.
value_type
est destiné à être utilisé avec des types
Readable
tels que les itérateurs. Il n'est pas destiné à être utilisé avec des plages.
Exemple
|
Cette section est incomplète
Raison : aucun exemple |
Voir aussi
spécifie qu'un type est lisible en appliquant l'opérateur
*
(concept) |
|
|
classe de traits de compatibilité qui collecte les types associés d'un itérateur
(alias de modèle) |