std::ranges::views::empty, std::ranges::empty_view
De cppreference.com
<tbody>
</tbody>
| Definido en el archivo de 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> inline constexpr empty_view<T> empty{}; } |
(2) | (desde C++20) |
1) Una fábrica de rangos que produce una vista (
view) sin elementos de un tipo particular.2) Plantilla de variable para
empty_view.Funciones miembro
begin [estático] (C++20) |
Devuelve nullptr. (función miembro estática pública) |
end [estático] (C++20) |
Devuelve nullptr. (función miembro estática pública) |
data [estático] (C++20) |
Devuelve nullptr. (función miembro estática pública) |
size [estático] (C++20) |
Devuelve 0 (cero). (función miembro estática pública) |
empty [estático] (C++20) |
Devuelve true. (función miembro estática pública) |
Heredadas de ranges::view_interface | |
(C++20) |
Devuelve si la vista derivada está vacía o no. Se proporciona si ranges::empty le es aplicable. (función miembro pública de std::ranges::view_interface<D>)
|
(C++20) |
Devuelve el primer elemento en la vista derivada. Se proporciona si la vista derivada satisface forward_range. (función miembro pública de std::ranges::view_interface<D>)
|
(C++20) |
Devuelve el último elemento en una vista derivada. Se proporciona si la vista derivada satisface bidirectional_range y common_range. (función miembro pública de std::ranges::view_interface<D>)
|
(C++20) |
Devuelve el enésimo elemento en la vista derivada. Se proporciona si la vista derivada satisface random_access_range. (función miembro pública de std::ranges::view_interface<D>)
|
std::ranges::empty_view::begin
<tbody> </tbody> static constexpr T* begin() noexcept { return nullptr; } |
(desde C++20) | |
empty_view no hace referencia a ningún elemento.
std::ranges::empty_view::end
<tbody> </tbody> static constexpr T* end() noexcept { return nullptr; } |
(desde C++20) | |
empty_view no hace referencia a ningún elemento.
std::ranges::empty_view::data
<tbody> </tbody> static constexpr T* data() noexcept { return nullptr; } |
(desde C++20) | |
empty_view no hace referencia a ningún elemento.
std::ranges::empty_view::size
<tbody> </tbody> static constexpr std::size_t size() noexcept { return 0; } |
(desde C++20) | |
empty_view siempre está vacía.
std::ranges::empty_view::empty
<tbody> </tbody> static constexpr bool empty() noexcept { return true; } |
(desde C++20) | |
empty_view siempre está vacía.
Plantillas auxiliares
<tbody> </tbody> template<class T> inline constexpr bool enable_borrowed_range<ranges::empty_view<T>> = true; |
(desde C++20) | |
Esta especialización de std::ranges::enable_borrowed_range hace que empty_view satisfaga borrowed_range.
Notas
Aunque empty_view obtiene las funciones miembro front, back, y operator[] de view_interface, llamadas a esas funciones siempre resultan en comportamiento no definido ya que empty_view siempre está vacía.
La función de conversión operator bool heredada siempre devuelve false.
Ejemplo
Ejecuta este código
#include <ranges>
int main()
{
std::ranges::empty_view<long> e;
static_assert(std::ranges::empty(e));
static_assert(0 == e.size());
static_assert(nullptr == e.data());
static_assert(nullptr == e.begin());
static_assert(nullptr == e.end());
}
Véase también
Una vista (view) que contiene un solo elemento de un valor específico. (plantilla de clase) (objeto punto de personalización) | |
(C++20) |
Una vista (view) que incluye todos los elementos de un rango (range). (plantilla de alias) (objeto adaptador de rango) |
(C++20) |
Una vista (view) de los elementos de algún otro rango (range). (plantilla de clase) |