std::ranges::view_interface<D>::empty
De cppreference.com
< cpp | ranges | view interface
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
Ejecuta este código
#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) |
(C++20) |
Comprueba si un rango está vacío. (objeto punto de personalización) |