std::experimental::ranges:: value_type
|
Определено в заголовочном файле
<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) | |
Вычисляет связанный тип значения для типа
I
, если таковой имеется. Пользователи могут специализировать
value_type
для программно-определенного типа.
T
является объектным типом, предоставляет член типа
type
равный
std::
remove_cv_t
<
T
>
. В противном случае, член
type
отсутствует.
value_type
. Если
T::value_type
является объектным типом, предоставляет тип-член
type
, равный
T::value_type
. В противном случае, член
type
отсутствует.
element_type
(например,
std::shared_ptr
). Если
T::element_type
является объектным типом, предоставляет тип-член
type
равный
std::
remove_cv_t
<
typename
T
::
element_type
>
. В противном случае, член
type
отсутствует.
Содержание |
Вспомогательный псевдоним шаблона
|
template
<
class
T
>
using value_type_t = typename ranges :: value_type < T > :: type ; |
(ranges TS) | |
Примечания
Если тип содержит одновременно член
value_type
и член
element_type
, то специализации
(5)
и
(6)
являются неоднозначными.
value_type
предназначен для использования с
Readable
типами, такими как итераторы. Он не предназначен для использования с диапазонами.
Пример
|
Этот раздел не завершён
Причина: отсутствует пример |
Смотрите также
определяет, что тип является читаемым посредством применения оператора
*
(концепт) |
|
|
класс характеристик совместимости, который собирает ассоциированные типы итератора
(псевдоним шаблона) |