Espacios de nombres
Variantes
Acciones

std::ranges::borrowed_range, std::ranges::enable_borrowed_range

De cppreference.com
< cpp‎ | ranges
 
 
Biblioteca de rangos
Adaptadores de rangos
 
Definido en el archivo de encabezado <ranges>
template<typename R>

concept borrowed_range =
    ranges::range<R>&&

    (std::is_lvalue_reference_v<R>|| ranges::enable_borrowed_range<std::remove_cvref_t<R>>);
(1)
Definido en el archivo de encabezado <ranges>
Definido en el archivo de encabezado <span>
Definido en el archivo de encabezado <string_view>
template<typename R>
inlineconstexprbool enable_borrowed_range =false;
(2)
1) El concepto borrowed_range (rango "prestado") define los requerimientos de un rango tal que una función lo puede tomar por valor y devolver iteradores obtenidos de él sin peligro de que queden pendientes.
2) La plantilla de variable enable_borrowed_range se usa para indicar si un rango (range) es un borrowed_range. La plantilla primaria se define como false.
Especializaciones para todas las especializaciones de las siguientes plantillas estándar se definen como true: Se permite que enable_borrowed_range se especialice para tipos sin calificación-cv definidos por el programa.

[editar]Requerimientos semánticos

Dada una expresión e tal que decltype((e)) es T, T modela borrowed_range solamente si la validez de los iteradores obtenidos del objeto denotado por e no está atada a la duración de ese objeto.

[editar] Notas

Los usuarios pueden especializar enable_borrowed_range a true para tipos sin calificación-cv definidos por el programa que modelan borrowed_range, y false para tipos que no. Tales especializaciones deberán ser utilizables en las expresiones constantes y tener tipo const bool.

close