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 . |
begin C++20 |
Obtenez un itérateur sur l’élément. |
data C++20 |
Obtenez un pointeur vers l’élément. |
end C++20 |
Obtenez la sentinelle à la fin de la vue. |
size C++20 |
Obtenez le nombre d’éléments. Retourne toujours 1 . |
Hérité de view_interface |
Description |
back C++20 |
Obtenez l’élément. |
empty C++20 |
Testez si l’affichage est vide (toujours retourné false ). |
front C++20 |
Obtenez l’élément. |
operator[] C++20 |
Obtenez l’élément à la position spécifiée (seule la position 0 est valide). |
operator bool C++20 |
Testez si la vue n’est pas vide (retourne false toujours ). |
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