Namespaces
Variants

std::ranges:: views:: empty, std::ranges:: empty_view

From cppreference.net
Ranges library
Range adaptors
Definido en el encabezado <ranges>
template < class T >

requires std:: is_object_v < T >

class empty_view : public ranges:: view_interface < empty_view < T >>
(1) (desde C++20)
namespace views {

template < class T >
constexpr empty_view < T > empty { } ;

}
(2) (desde C++20)
1) Una fábrica de rangos que produce una view sin elementos de un tipo particular.
2) Plantilla de variable para empty_view .

Contenidos

Funciones miembro

begin
[static]
devuelve nullptr
(función miembro pública estática)
end
[static]
devuelve nullptr
(función miembro pública estática)
data
[static]
devuelve nullptr
(función miembro pública estática)
size
[static]
devuelve 0
(función miembro pública estática)
empty
[static]
devuelve true
(función miembro pública estática)
Heredado de std::ranges::view_interface
(C++23)
devuelve un iterador constante al inicio del rango
(función miembro pública de std::ranges::view_interface<D> )
(C++23)
devuelve un centinela para el iterador constante del rango
(función miembro pública de std::ranges::view_interface<D> )
devuelve si la vista derivada no está vacía, proporcionado solo si ranges::empty es aplicable a ella
(función miembro pública de std::ranges::view_interface<D> )
devuelve el primer elemento en la vista derivada, proporcionado si satisface forward_range
(función miembro pública de std::ranges::view_interface<D> )
devuelve el último elemento en la vista derivada, proporcionado solo si satisface bidirectional_range y common_range
(función miembro pública de std::ranges::view_interface<D> )
devuelve el n ésimo elemento en la vista derivada, proporcionado solo si satisface random_access_range
(función miembro pública de std::ranges::view_interface<D> )

std::ranges::empty_view:: begin

static constexpr T * begin ( ) noexcept { return nullptr ; }
(desde C++20)

empty_view no referencia ningún elemento.

std::ranges::empty_view:: end

static constexpr T * end ( ) noexcept { return nullptr ; }
(desde C++20)

empty_view no referencia ningún elemento.

std::ranges::empty_view:: data

static constexpr T * data ( ) noexcept { return nullptr ; }
(desde C++20)

empty_view no referencia ningún elemento.

std::ranges::empty_view:: size

static constexpr std:: size_t size ( ) noexcept { return 0 ; }
(desde C++20)

empty_view siempre está vacío.

std::ranges::empty_view:: empty

static constexpr bool empty ( ) noexcept { return true ; }
(desde C++20)

empty_view siempre está vacío.

Plantillas auxiliares

template < class T >
constexpr bool ranges:: enable_borrowed_range < ranges :: empty_view < T >> = true ;
(desde C++20)

Esta especialización de ranges:: enable_borrowed_range hace que empty_view cumpla con borrowed_range .

Notas

Aunque empty_view obtiene las funciones miembro front , back , y operator [ ] de view_interface , las llamadas a ellas siempre resultan en comportamiento indefinido ya que un empty_view siempre está vacío.

La función de conversión heredada operator bool siempre retorna false .

Ejemplo

#include <ranges>
int main()
{
    namespace ranges = std::ranges;
    ranges::empty_view<long> e;
    static_assert(ranges::empty(e)); // utiliza operator bool
    static_assert(0 == e.size());
    static_assert(nullptr == e.data());
    static_assert(nullptr == e.begin());
    static_assert(nullptr == e.end());
    static_assert(nullptr == e.cbegin());
    static_assert(nullptr == e.cend());
}

Véase también

(C++17)
un contenedor que puede o no contener un objeto
(class template)
una view que contiene un único elemento de un valor especificado
(class template) (customization point object)
una view que incluye todos los elementos de un range
(alias template) (range adaptor object)
una view de los elementos de algún otro range
(class template)