std::experimental::ranges:: distance
|
Определено в заголовке
<experimental/ranges/iterator>
|
||
|
namespace
{
constexpr
/* unspecified */
distance
=
/* unspecified */
;
|
(ranges TS)
(объект точки настройки) |
|
|
Сигнатура вызова
|
||
|
template
<
Iterator I, Sentinel
<
I
>
S
>
constexpr ranges :: difference_type_t < I > distance ( I first, S last ) ; |
(1) | |
|
template
<
Range R
>
constexpr ranges :: difference_type_t < ranges:: iterator_t < R >> distance ( R && r ) ; |
(2) | |
|
template
<
SizedRange R
>
constexpr ranges :: difference_type_t < ranges:: iterator_t < R >> distance ( R && r ) ; |
(3) | |
Возвращает расстояние между first и last , или между началом и концом диапазона r .
[
first
,
last
)
не обозначает диапазон, тогда
I
и
S
должны быть одного типа и должны моделировать
SizedSentinel
, и
[
last
,
first
)
должен обозначать диапазон. В противном случае поведение не определено.
Создание экземпляров перегрузок (2,3) может быть некорректным, если заголовок <experimental/ranges/range> не включен до точки инстанцирования.
Содержание |
Объекты точек кастомизации
Имя
ranges::distance
обозначает
объект точки кастомизации
, который является
функциональным объектом
типа
литерального
Semiregular
класса (обозначенного, для целей демонстрации, как
DistanceT
). Все экземпляры
DistanceT
равны. Таким образом,
ranges::distance
может свободно копироваться, и его копии могут использоваться взаимозаменяемо.
Для заданного набора типов
Args...
, если
std::
declval
<
Args
>
(
)
...
удовлетворяют требованиям к аргументам для
ranges::distance
выше,
DistanceT
будет удовлетворять
ranges
::
Invocable
<
const
DistanceT, Args...
>
. В противном случае ни один оператор вызова функции
DistanceT
не участвует в разрешении перегрузки.
В каждой единице трансляции, где определен
ranges::distance
, он ссылается на один и тот же экземпляр объекта точки кастомизации. (Это означает, что его можно свободно использовать в таких конструкциях, как встроенные функции и шаблоны функций без нарушения
правила одного определения
.)
Возвращаемое значение
Расстояние между first и last , или между началом и концом диапазона r .
Пример
|
Этот раздел не завершён
Причина: отсутствует пример |
Смотрите также
|
возвращает расстояние между двумя итераторами
(шаблон функции) |
|
|
перемещает итератор на заданное расстояние
(шаблон функции) |
|
|
инкрементирует итератор
(шаблон функции) |
|
|
декрементирует итератор
(шаблон функции) |
|
|
получает размер диапазона, который может быть вычислен за константное время
(объект точки настройки) |