std::experimental::ranges:: value_type
|
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
。
value_type
的类型的特化。若
T::value_type
是对象类型,则提供与
T::value_type
相等的成员类型
type
。否则不存在成员
type
。
element_type
的类型特化(例如
std::shared_ptr
)。若
T::element_type
为对象类型,则提供等于
std::
remove_cv_t
<
typename
T
::
element_type
>
的成员类型
type
。否则不提供
type
成员。
目录 |
辅助别名模板
|
template
<
class
T
>
using value_type_t = typename ranges :: value_type < T > :: type ; |
(范围TS) | |
注释
如果一个类型同时包含
value_type
成员和
element_type
成员,那么特化
(5)
和
(6)
会产生歧义。
value_type
旨在与
Readable
类型(例如迭代器)一起使用,不适用于范围。
示例
|
本节内容不完整
原因:缺少示例 |
另请参阅
规定通过应用
*
运算符可读取类型的值
(概念) |
|
|
收集迭代器关联类型的兼容性特征类
(别名模板) |