Nota
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare ad accedere o a cambiare directory.
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare a cambiare directory.
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. |
beginC++20 |
Ottenere un iteratore all'elemento . |
dataC++20 |
Ottenere un puntatore all'elemento . |
endC++20 |
Ottenere l'sentinel alla fine della visualizzazione. |
sizeC++20 |
Ottiene il numero di elementi. Restituisce sempre 1. |
Ereditato da view_interface |
Descrizione |
backC++20 |
Ottenere l'elemento . |
emptyC++20 |
Verificare se la vista è vuota (restituisce falsesempre ). |
frontC++20 |
Ottenere l'elemento . |
operator[]C++20 |
Ottiene l'elemento nella posizione specificata (solo la posizione 0 è valida). |
operator boolC++20 |
Verificare se la vista non è vuota (restituisce falsesempre ). |
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 later
#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