std::experimental::ranges:: distance
|
Definido en el encabezado
<experimental/ranges/iterator>
|
||
|
namespace
{
constexpr
/* no especificado */
distance
=
/* no especificado */
;
|
(ranges TS)
(objeto de punto de personalización) |
|
|
Firma de llamada
|
||
|
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) | |
Devuelve la distancia entre first y last , o entre el inicio y el final del rango r .
[
first
,
last
)
no denota un rango, entonces
I
y
S
deben ser del mismo tipo y deben modelar
SizedSentinel
, y
[
last
,
first
)
debe denotar un rango. De lo contrario, el comportamiento es indefinido.
Instanciar las sobrecargas (2,3) puede ser incorrecto si el encabezado <experimental/ranges/range> no está incluido antes del punto de instanciación.
Contenidos |
Objetos de punto de personalización
El nombre
ranges::distance
denota un
objeto de punto de personalización
, que es un
objeto función
de un tipo de clase
literal
Semiregular
(denotado, con fines expositivos, como
DistanceT
). Todas las instancias de
DistanceT
son iguales. Por lo tanto,
ranges::distance
puede copiarse libremente y sus copias pueden usarse indistintamente.
Dado un conjunto de tipos
Args...
, si
std::
declval
<
Args
>
(
)
...
cumplen los requisitos para argumentos de
ranges::distance
mencionados anteriormente,
DistanceT
satisfará
ranges
::
Invocable
<
const
DistanceT, Args...
>
. De lo contrario, ningún operador de llamada a función de
DistanceT
participa en la resolución de sobrecarga.
En cada unidad de traducción en la que
ranges::distance
está definida, se refiere a la misma instancia del objeto de punto de personalización. (Esto significa que puede usarse libremente en elementos como funciones inline y plantillas de función sin violar la
regla de una definición
.)
Valor de retorno
La distancia entre first y last , o entre el inicio y el final del rango r .
Ejemplo
|
Esta sección está incompleta
Motivo: sin ejemplo |
Véase también
|
devuelve la distancia entre dos iteradores
(plantilla de función) |
|
|
avanza un iterador una distancia dada
(plantilla de función) |
|
|
incrementa un iterador
(plantilla de función) |
|
|
decrementa un iterador
(plantilla de función) |
|
|
obtiene el tamaño de un rango cuyo tamaño puede calcularse en tiempo constante
(objeto de punto de personalización) |