Namespaces
Variants

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

De fr.cppreference.net
 
 
Bibliothèque de plages
Adaptateurs de plages
 
Défini dans l'en-tête <ranges>
template<class T>
    requires std::is_object_v<T>
class empty_view : public ranges::view_interface<empty_view<T>>
(1) (depuis C++20)
namespace views {
    template<class T>
    constexpr empty_view<T> empty{};
}
(2) (depuis C++20)
1) Une fabrique de plages qui produit une vue d'aucun élément d'un type particulier.
2) Modèle de variable pour empty_view.

Fonctions membres

begin
[static]
retourne nullptr
(fonction membre publique statique)
end
[static]
retourne nullptr
(fonction membre publique statique)
data
[static]
retourne nullptr
(fonction membre publique statique)
size
[static]
retourne 0
(fonction membre publique statique)
empty
[static]
retourne true
(fonction membre publique statique)
Hérité de ranges::view_interface
(C++23)
retourne un itérateur constant au début de la plage
(fonction membre publique de std::ranges::view_interface<D>)
(C++23)
retourne un sentinelle pour l'itérateur constant de la plage
(fonction membre publique de std::ranges::view_interface<D>)
retourne si la vue dérivée n'est pas vide, à condition que ranges::empty lui soit applicable
(fonction membre publique de std::ranges::view_interface<D>)
retourne le premier élément dans la vue dérivée, à condition qu'elle satisfasse forward_range
(fonction membre publique de std::ranges::view_interface<D>)
retourne le dernier élément dans la vue dérivée, à condition qu'elle satisfasse bidirectional_range et common_range
(fonction membre publique de std::ranges::view_interface<D>)
retourne le nème élément dans la vue dérivée, à condition qu'elle satisfasse random_access_range
(fonction membre publique de std::ranges::view_interface<D>)

std::ranges::empty_view:: begin

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

empty_view ne référence aucun élément.

std::ranges::empty_view:: end

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

empty_view ne référence aucun élément.

std::ranges::empty_view:: data

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

empty_view ne référence aucun élément.

std::ranges::empty_view:: size

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

empty_view est toujours vide.

std::ranges::empty_view:: empty

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

empty_view est toujours vide.

Modèles d'assistance

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

Cette spécialisation de ranges:: enable_borrowed_range permet à empty_view de satisfaire borrowed_range .

Notes

Bien que empty_view obtienne front , back , et operator [ ] comme fonctions membres de view_interface , leurs appels entraînent toujours un comportement indéfini car un empty_view est toujours vide.

La fonction de conversion héritée operator bool retourne toujours false .

Exemple

#include <ranges>
int main()
{
    namespace ranges = std::ranges;
    ranges::empty_view<long> e;
    static_assert(ranges::empty(e)); // utilise l'opérateur 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());
}

Voir aussi

(C++17)
un wrapper qui peut contenir ou non un objet
(modèle de classe)
une view qui contient un seul élément d'une valeur spécifiée
(modèle de classe) (objet de point de personnalisation)
une view qui inclut tous les éléments d'un range
(modèle d'alias) (objet adaptateur de gamme)
une view des éléments d'une autre range
(modèle de classe)