std::experimental::ranges:: value_type
|
Definido en el encabezado
<experimental/ranges/iterator>
|
||
|
template
<
class
I
>
struct value_type { } ; |
(1) | |
|
template
<
class
T
>
struct value_type < T * > ; |
(2) | |
|
template
<
class
I
>
requiere
std::
is_array
<
I
>
::
value
|
(3) | |
|
template
<
class
T
>
struct value_type < const T > : value_type < std:: decay_t < T >> { } ; |
(4) | |
|
template
<
class
T
>
requiere requiere
{
typename
T
::
value_type
;
}
|
(5) | |
|
template
<
class
T
>
requiere requiere
{
typename
T
::
element_type
;
}
|
(6) | |
Calcula el tipo de valor asociado del tipo
I
, si existe. Los usuarios pueden especializar
value_type
para un tipo definido por el programa.
T
es un tipo objeto, proporciona un tipo miembro
type
igual a
std::
remove_cv_t
<
T
>
. De lo contrario, no existe el miembro
type
.
value_type
. Si
T::value_type
es un tipo objeto, proporciona un tipo miembro
type
igual a
T::value_type
. De lo contrario, no existe el miembro
type
.
element_type
(por ejemplo,
std::shared_ptr
). Si
T::element_type
es un tipo objeto, proporciona un tipo miembro
type
igual a
std::
remove_cv_t
<
typename
T
::
element_type
>
. De lo contrario, no existe el miembro
type
.
Contenidos |
Plantilla de alias auxiliar
|
template
<
class
T
>
using value_type_t = typename ranges :: value_type < T > :: type ; |
(TS de ranges) | |
Notas
Si un tipo contiene tanto un miembro
value_type
como un miembro
element_type
, entonces las especializaciones
(5)
y
(6)
son ambiguas.
value_type
está destinado para su uso con tipos
Readable
como los iteradores. No está destinado para su uso con rangos.
Ejemplo
|
Esta sección está incompleta
Motivo: sin ejemplo |
Véase también
especifica que un tipo es legible aplicando el operador
*
(concepto) |
|
|
clase de rasgos de compatibilidad que recopila los tipos asociados de un iterador
(plantilla de alias) |