deduction guides for
std::ranges::subrange
|
定义于头文件
<ranges>
|
||
|
template
<
std::
input_or_output_iterator
I,
std::
sentinel_for
<
I
>
S
>
subrange ( I, S ) - > subrange < I, S > ; |
(1) | (C++20 起) |
|
template
<
std::
input_or_output_iterator
I,
std::
sentinel_for
<
I
>
S
>
subrange
(
I, S,
/*make-unsigned-like-t*/
<
std::
iter_difference_t
<
I
>>
)
-
>
|
(2) | (C++20 起) |
|
template
<
ranges::
borrowed_range
<
R
>
>
subrange
(
R
&&
)
-
>
|
(3) | (C++20 起) |
|
template
<
ranges::
borrowed_range
<
R
>
>
subrange
(
R
&&
,
/*make-unsigned-like-t*/
<
ranges::
range_difference_t
<
R
>>
)
-
>
|
(4) | (C++20 起) |
这些 推导指引 是为 std::ranges::subrange 提供的。
subrange
始终是带大小的。
subrange
为带大小规格的。
subrange
始终是带大小的。
关于
/* make-unsigned-like-t */
的定义,请参见
make-unsigned-like-t
。
注释
在构造
subrange
对象时,
- 对于 (1,2) ,若迭代器-哨位对不表示有效范围,则行为未定义,
- 对于 (2,4) ,若给定大小不等于范围大小,则行为未定义。
示例
|
本节内容不完整
原因:缺少示例 |
缺陷报告
下列行为变更缺陷报告被追溯应用于先前发布的 C++ 标准。
| 缺陷报告 | 应用于 | 发布时行为 | 正确行为 |
|---|---|---|---|
| LWG 3404 | C++20 | 提供了来自类pair类型的无意义推导指引 | 已移除 |