Partager via


single_view classe (bibliothèque standard C++)

Vue qui n’a qu’un seul élément. Cette vue est utile à des fins de test pour appeler du code qui doit être fourni avec une vue avec au moins un élément dans celui-ci.

Syntaxe

template<std::copy_constructible T>
  requires std::is_object_v<T>
class single_view : public ranges::view_interface<single_view<T>>

Paramètres de modèle

T
Type de l'élément.

Afficher les caractéristiques

Pour obtenir une description des entrées suivantes, consultez les caractéristiques de classe View

Caractéristique Description
Adaptateur de plage views::single
Plage sous-jacente Aucune
Type d’élément Spécifié lors de la création de l’objet single_view
Afficher la catégorie d’itérateur contiguous_range
Taille Retourne toujours 1
Est const-itérable Oui
Plage commune Oui
Plage empruntée Non

Membres

Fonctions membres Description
Constructeurs C++20 Construisez un single_view.
beginC++20 Obtenez un itérateur sur l’élément.
dataC++20 Obtenez un pointeur vers l’élément.
endC++20 Obtenez la sentinelle à la fin de la vue.
sizeC++20 Obtenez le nombre d’éléments. Retourne toujours 1.
Hérité de view_interface Description
backC++20 Obtenez l’élément.
emptyC++20 Testez si l’affichage est vide (toujours retourné false).
frontC++20 Obtenez l’élément.
operator[]C++20 Obtenez l’élément à la position spécifiée (seule la position 0 est valide).
operator boolC++20 Testez si la vue n’est pas vide (retourne falsetoujours ).

Notes

La meilleure façon de créer un single_view est d’utiliser l’adaptateur views::single de plage. Les adaptateurs de plage sont la méthode prévue pour créer des classes d’affichage. Les types d’affichage sont exposés au cas où vous souhaitez créer votre propre type d’affichage personnalisé.

La valeur dans le single_view fichier peut être modifiée, sauf si la valeur du modèle est const. Par exemple : single_view<const float> sv{3.14} // this value can't be modified because it's const.

Spécifications

En-tête : <ranges> (depuis C++20)

Espace de noms : std::ranges

Option du compilateur : /std:c++20 ou version ultérieure est requise.

Constructeurs

Créez une instance de single_view.

1) single_view() = default;
2) constexpr explicit single_view(const T& t);
3) constexpr explicit single_view(T&& t);
4) template<class... Args>
        requires constructible_from<T, Args...>
    constexpr single_view(in_place_t, Args&&... args);

Paramètres

t
Valeur de l’élément.

Pour plus d’informations sur le type de paramètre de modèle, consultez Paramètres de modèle.

Notes

La meilleure façon de créer un single_view est d’utiliser l’adaptateur views::single de plage.

1) Créez un single_view élément avec un seul élément du type spécifié qui est construit par défaut. Par exemple, single_view<float> sv{} crée un single_view élément avec un seul élément de type float qui est construit par défaut sur 0.0.
2) Créez un single_view élément avec un seul élément du type spécifié qui est copié à partir de l’argument spécifié. Par exemple, single_view<myObjectType> sv{myObject} crée un single_view élément avec un seul élément de type myObjectType qui est initialisé à partir de l’argument.
3) Créez un single_view élément avec un seul élément du type spécifié qui est initialisé à partir de l’argument.
4) Créez un single_view élément avec un seul élément du type spécifié initialisé avec (std::forward<Args>(args)...).

Exemple single_view

/// requires /std:c++20 or higher
#include <ranges>
#include <iostream>
#include <string>
#include <tuple>

int main()
{
    std::ranges::single_view<int> sv{7};
    std::cout << sv.front() << " " << *sv.data() << "\n"; // 7 7

    std::ranges::single_view<std::tuple<int, std::string>> sv2{{6502, "8-bit"}};
    std::cout << std::get<0>(sv2[0]) << " " << std::get<1>(sv2[0]) << "\n"; // 6502 8-bit
}
7 7
6502 8-bit

begin

Obtenez un pointeur vers l’élément unique dans la vue.

constexpr T* begin() noexcept;
constexpr const T* begin() const noexcept;

Paramètres

Aucune.

Valeur retournée

Pointeur vers l’élément unique à l’intérieur du single_view.

data

Obtenir un pointeur vers l’élément unique dans le single_view.

constexpr T* data() noexcept;
constexpr const T* data() const noexcept;

Paramètres

Aucune.

Valeur retournée

Pointeur vers l’élément dans le single_view.

end

Obtient un pointeur vers la sentinelle après l’élément.

constexpr T* end() noexcept;
constexpr const T* end() const noexcept;

Paramètres

Aucune.

Valeur retournée

Pointeur vers la sentinelle qui suit l’élément.

size

Obtenez le nombre d’éléments dans la vue. Retourne toujours 1.

static constexpr size_t size() noexcept;

Paramètres

Aucune.

Valeur retournée

1

Voir aussi

<ranges>
single adaptateur de plage
empty_view
Afficher les classes