Espacios de nombres
Variantes
Acciones

std::ranges::view_interface<D>::empty

De cppreference.com
 
 
Biblioteca de rangos
Adaptadores de rangos
 
std::ranges::view_interface
Funciones miembro
empty
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
 
constexpr bool empty() requires ranges::forward_range<D>;
(1) (desde C++20)
constexpr bool empty() const requires ranges::forward_range<const D>;
(2) (desde C++20)

La implementación por defecto de la función miembro empty() verifica si el iterador al comienzo y el centinela se comparan iguales.

1) Sea derived una referencia vinculada a static_cast<D&>(*this). Es equivalente a return ranges::begin(derived) == ranges::end(derived);.
2) Igual que (1), excepto que derived es static_cast<const D&>(*this).

Contenido

[editar] Parámetros

(Ninguno)

[editar] Valor de retorno

true si el iterador al comienzo y el centinela del objeto del tipo derivado se comparan iguales, false de lo contrario.

[editar] Notas

Los siguientes tipos derivados pueden usar la implementación por defecto de empty:

  • std::ranges::common_view
  • std::ranges::drop_view
  • std::ranges::drop_while_view
  • std::ranges::elements_view
  • std::ranges::filter_view
  • std::ranges::iota_view
  • std::ranges::join_view
  • std::ranges::lazy_split_view
  • std::ranges::reverse_view
  • std::ranges::single_view
  • std::ranges::split_view
  • std::ranges::take_view
  • std::ranges::take_while_view
  • std::ranges::transform_view

Aunque std::ranges::basic_istream_view hereda de std::ranges::view_interface y no declara la función miembro empty(), no puede usar la implementación por defecto, ya que nunca satisface std::ranges::forward_range.

[editar] Ejemplo

#include <array>
#include <ranges>
 
int main() {
    constexpr std::array a {0, 1, 2, 3, 4};
    static_assert( ! std::ranges::single_view(a).empty() );
    static_assert(   (a | std::views::take(0)).empty() );
    static_assert( ! (a | std::views::take(2)).empty() );
    static_assert(   (a | std::views::drop(9)).empty() );
    static_assert( ! (a | std::views::drop(2)).empty() );
    static_assert(   std::views::iota(0,0).empty() );
    static_assert( ! std::views::iota(0).empty() );
}


[editar] Véase también

(C++17)
Comprueba si un contenedor está vacío
(plantilla de función) [editar]
Comprueba si un rango está vacío.
(objeto punto de personalización) [editar]