Namespaces
Variants

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

From cppreference.net
Ranges library
Range adaptors
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 gamme qui produit une view d'aucun élément d'un type particulier.
2) Modèle variable pour empty_view .

Table des matières

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 std::ranges::view_interface
(C++23)
retourne un itérateur constant vers le 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, fourni uniquement si ranges::empty lui est applicable
(fonction membre publique de std::ranges::view_interface<D> )
retourne le premier élément de la vue dérivée, fourni si elle satisfait forward_range
(fonction membre publique de std::ranges::view_interface<D> )
retourne le dernier élément de la vue dérivée, fourni uniquement si elle satisfait bidirectional_range et common_range
(fonction membre publique de std::ranges::view_interface<D> )
retourne le n ème élément de la vue dérivée, fourni uniquement si elle satisfait 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)