single_view
classe (libreria standard C++)
Visualizzazione con un solo elemento. Questa visualizzazione è utile a scopo di test per chiamare il codice che deve essere fornito con una visualizzazione con almeno un elemento in esso contenuto.
Sintassi
template<std::copy_constructible T>
requires std::is_object_v<T>
class single_view : public ranges::view_interface<single_view<T>>
Parametri del modello
T
Tipo dell'elemento.
Visualizzare le caratteristiche
Per una descrizione delle voci seguenti, vedere Visualizzare le caratteristiche della classe
Caratteristica | Descrizione |
---|---|
Adattatore di intervallo | views::single |
Intervallo sottostante | None |
Tipo di elemento | Specificato al momento della creazione dell'oggetto single_view |
Visualizzare la categoria iteratore | contiguous_range |
Dimensioni | Restituisce sempre 1 |
Iterabile const |
Sì |
Intervallo comune | Sì |
Intervallo preso in prestito | No |
Membri
Funzioni membro | Descrizione |
---|---|
Costruttori C++20 | Creare un oggetto single_view . |
begin C++20 |
Ottenere un iteratore all'elemento . |
data C++20 |
Ottenere un puntatore all'elemento . |
end C++20 |
Ottenere l'sentinel alla fine della visualizzazione. |
size C++20 |
Ottiene il numero di elementi. Restituisce sempre 1 . |
Ereditato da view_interface |
Descrizione |
back C++20 |
Ottenere l'elemento . |
empty C++20 |
Verificare se la vista è vuota (restituisce false sempre ). |
front C++20 |
Ottenere l'elemento . |
operator[] C++20 |
Ottiene l'elemento nella posizione specificata (solo la posizione 0 è valida). |
operator bool C++20 |
Verificare se la vista non è vuota (restituisce false sempre ). |
Osservazioni:
Il modo migliore per creare un single_view
oggetto consiste nell'usare l'adattatore views::single
di intervallo. Gli adattatori di intervallo sono il modo previsto per creare classi di visualizzazione. I tipi di visualizzazione vengono esposti nel caso in cui si voglia creare un tipo di visualizzazione personalizzato.
Il valore in single_view
può essere modificato a meno che il valore del modello non sia const
. Ad esempio: single_view<const float> sv{3.14} // this value can't be modified because it's const
.
Requisiti
Intestazione: <ranges>
(da C++20)
Spazio dei nomi: std::ranges
Opzione del compilatore: /std:c++20
o versione successiva è obbligatoria.
Costruttori
Creare un'istanza di un 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);
Parametri
t
Valore dell'elemento.
Per informazioni sul tipo di parametro del modello, vedere Parametri del modello.
Osservazioni:
Il modo migliore per creare un single_view
oggetto consiste nell'usare l'adattatore views::single
di intervallo.
1) Creare un single_view
oggetto con un singolo elemento del tipo specificato costruito per impostazione predefinita. Ad esempio, single_view<float> sv{}
crea un single_view
oggetto con un singolo elemento di tipo float
costruito per impostazione predefinita su 0.0
.
2) Creare un single_view
oggetto con un singolo elemento del tipo specificato che viene copiato dall'argomento specificato. Ad esempio, single_view<myObjectType> sv{myObject}
crea un single_view
oggetto con un singolo elemento di tipo myObjectType
copiato dall'argomento .
3) Creare un single_view
oggetto con un singolo elemento del tipo specificato inizializzato dall'argomento .
4) Creare un single_view
oggetto con un singolo elemento del tipo specificato inizializzato con (std::forward<Args>(args)...)
.
Esempiosingle_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
Ottenere un puntatore al singolo elemento nella visualizzazione.
constexpr T* begin() noexcept;
constexpr const T* begin() const noexcept;
Parametri
Nessuna.
Valore restituito
Puntatore al singolo elemento all'interno di single_view
.
data
Ottenere un puntatore al singolo elemento nell'oggetto single_view
.
constexpr T* data() noexcept;
constexpr const T* data() const noexcept;
Parametri
Nessuna.
Valore restituito
Puntatore all'elemento nell'oggetto single_view
.
end
Ottiene un puntatore alla sentinella dopo l'elemento .
constexpr T* end() noexcept;
constexpr const T* end() const noexcept;
Parametri
Nessuna.
Valore restituito
Puntatore alla sentinella che segue l'elemento .
size
Ottiene il numero di elementi nella visualizzazione. Restituisce sempre 1
.
static constexpr size_t size() noexcept;
Parametri
Nessuna.
Valore restituito
1
Vedi anche
<ranges>
single
adattatore di intervallo
empty_view
Visualizzare le classi