std::ranges::range_reference_t, std::ranges::range_const_reference_t, std::ranges::range_rvalue_reference_t, std::ranges::range_common_reference_t
Определено в заголовочном файле <ranges> | ||
|---|---|---|
template< ranges::range R > using range_reference_t = std::iter_reference_t<ranges::iterator_t<R>>; | (1) | (начиная с C++20) |
template< ranges::range R >
using range_const_reference_t =
std::iter_const_reference_t<ranges::iterator_t<R>>;
| (2) | (начиная с C++23) |
template< ranges::range R >
using range_rvalue_reference_t =
std::iter_rvalue_reference_t<ranges::iterator_t<R>>;
| (3) | (начиная с C++20) |
template< ranges::range R >
using range_common_reference_t =
std::iter_common_reference_t<ranges::iterator_t<R>>;
| (4) | (начиная с C++20) |
1) Используется для получения типа ссылки типа итератора типа диапазона
R.
2) Используется для получения типа константной ссылки типа итератора типа диапазона
R.
3) Используется для получения типа rvalue-ссылки типа итератора типа диапазона
R.
4) Используется для получения общего типа ссылки типа итератора типа диапазона
R.Параметры шаблона
| R | - | тип range или тип sized_range |
Отчёты об ошибках
Следующие отчёты об ошибках, изменяющие поведение, были применены задним числом к ранее опубликованным стандартам C++.
| DR | Применяется к | Опубликованное поведение | Исправленное поведение |
|---|---|---|---|
| LWG 3860 | C++20 |
range_common_reference_t отсутствовал | добавлен |
См. также
|
(C++20)(C++20)(C++23)(C++20)(C++20)(C++20) | вычисляет связанные типы итератора (шаблон псевдонима) |
|
(C++20)(C++23)(C++20)(C++23) | получает типы итератора и дозорного диапазона (шаблон псевдонима) |
|
(C++20)(C++20)(C++20) | получает типы размера, разности и значения диапазона (шаблон псевдонима) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/ranges/range_reference_t