deduction guides for
std::ranges::subrange
|
Definiert im Header
<ranges>
|
||
|
template
<
std::
input_or_output_iterator
I,
std::
sentinel_for
<
I
>
S
>
subrange ( I, S ) - > subrange < I, S > ; |
(1) | (seit 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) | (seit C++20) |
|
template
<
ranges::
borrowed_range
<
R
>
>
subrange
(
R
&&
)
->
|
(3) | (seit C++20) |
|
template
<
ranges::
borrowed_range
<
R
>
>
subrange
(
R
&&
,
/*make-unsigned-like-t*/
<
ranges::
range_difference_t
<
R
>>
)
-
>
|
(4) | (seit C++20) |
Diese Deduction Guides werden für std::ranges::subrange bereitgestellt.
subrange
ist größenbehaftet, wenn
std::
sized_sentinel_for
<
S, I
>
erfüllt ist, wie durch das Standard-Template-Argument bestimmt.
subrange
ist immer sized.
subrange
ist größenbehaftet, wenn die Größe vom Bereich oder seinem Iterator und Sentinel ermittelt werden kann.
subrange
ist immer sized.
Für die Definition von
/* make-unsigned-like-t */
, siehe
make-unsigned-like-t
.
Hinweise
Während der Erstellung des
subrange
-Objekts,
- für (1,2) ist das Verhalten undefiniert, wenn das Iterator-Sentinel-Paar keinen gültigen Bereich bezeichnet,
- für (2,4) ist das Verhalten undefiniert, wenn die gegebene Größe nicht der Größe des Bereichs entspricht.
Beispiel
|
Dieser Abschnitt ist unvollständig
Grund: Kein Beispiel |
Fehlerberichte
Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | Angewendet auf | Verhalten wie veröffentlicht | Korrektes Verhalten |
|---|---|---|---|
| LWG 3404 | C++20 | bedeutungslose Deduction Guides von paarähnlichen Typen wurden bereitgestellt | entfernt |