Namespaces
Variants

std:: from_range, std:: from_range_t

From cppreference.net
Ranges library
Range adaptors
Definiert im Header <ranges>
struct from_range_t { explicit from_range_t ( ) = default ; } ;
(seit C++23)
inline constexpr std :: from_range_t from_range { } ;
(seit C++23)

std::from_range ist ein Disambiguierungstag, der an die Konstruktoren der geeigneten Container übergeben werden kann, um anzuzeigen, dass das enthaltene Element bereichskonstruiert ist.

Der entsprechende Typ std::from_range_t kann in der Parameterliste des Konstruktors verwendet werden, um das vorgesehene Tag zu entsprechen.

Inhaltsverzeichnis

Standardbibliothek

Die folgenden Standardbibliothekstypen verwenden std::from_range_t Typ in ihren Konstruktoren:

Container-Bibliothek
Konstruiert den vector aus einem Bereich
(öffentliche Elementfunktion von std::vector<T,Allocator> )
Konstruiert den inplace_vector aus einem Bereich
(Öffentliche Mitgliedsfunktion von std::inplace_vector<T,N> )
konstruiert das hive aus einem Bereich
(öffentliche Elementfunktion von Template:cpp/container/hive/title )
Konstruiert die deque aus einem Bereich
(Öffentliche Elementfunktion von std::deque<T,Allocator> )
konstruiert die forward_list aus einem Bereich
(öffentliche Elementfunktion von std::forward_list<T,Allocator> )
konstruiert die list aus einem Bereich
(öffentliche Elementfunktion von std::list<T,Allocator> )
Konstruiert den set aus einem Bereich
(Öffentliche Mitgliedsfunktion von std::set<Key,Compare,Allocator> )
Konstruiert die map aus einem Bereich
(Öffentliche Elementfunktion von std::map<Key,T,Compare,Allocator> )
konstruiert den multiset aus einem Bereich
(öffentliche Member-Funktion von std::multiset<Key,Compare,Allocator> )
konstruiert den multimap aus einem Bereich
(öffentliche Elementfunktion von std::multimap<Key,T,Compare,Allocator> )
konstruiert den unordered_set aus einem Bereich
(öffentliche Elementfunktion von std::unordered_set<Key,Hash,KeyEqual,Allocator> )
Konstruiert die unordered_map aus einem Bereich
(öffentliche Member-Funktion von std::unordered_map<Key,T,Hash,KeyEqual,Allocator> )
konstruiert den unordered_multiset aus einem Bereich
(öffentliche Elementfunktion von std::unordered_multiset<Key,Hash,KeyEqual,Allocator> )
konstruiert den unordered_multimap aus einem Bereich
(öffentliche Elementfunktion von std::unordered_multimap<Key,T,Hash,KeyEqual,Allocator> )
Konstruiert die priority_queue aus einem Bereich
(öffentliche Elementfunktion von std::priority_queue<T,Container,Compare> )
konstruiert die queue aus einem Bereich
(öffentliche Elementfunktion von std::queue<T,Container> )
Konstruiert den stack aus einem Bereich
(Öffentliche Mitgliedsfunktion von std::stack<T,Container> )
Konstruiert den flat_set aus einem Bereich
(Öffentliche Elementfunktion von std::flat_set<Key,Compare,KeyContainer> )
Konstruiert den flat_map aus einem Bereich
(Öffentliche Elementfunktion von std::flat_map<Key,T,Compare,KeyContainer,MappedContainer> )
Konstruiert den flat_multiset aus einem Bereich
(Öffentliche Elementfunktion von std::flat_multiset<Key,Compare,KeyContainer> )
Konstruiert die flat_multimap aus einem Bereich
(öffentliche Elementfunktion von std::flat_multimap<Key,T,Compare,KeyContainer,MappedContainer> )
String-Bibliothek
Konstruiert den basic_string aus einem Bereich
(Öffentliche Mitgliedsfunktion von std::basic_string<CharT,Traits,Allocator> )

Hinweise

Feature-Test Makro Wert Standard Funktion
__cpp_lib_containers_ranges 202202L (C++23) Markierte Konstruktoren zum Konstruieren aus einem container-kompatiblen Bereich

Beispiel

#include <cassert>
#include <string>
int main()
{
#ifdef __cpp_lib_containers_ranges
    auto const range = {0x43, 43, 43};
    std::string str{std::from_range, range}; // verwendet markierten Konstruktor
    assert(str == "C++");
#endif
}
**Übersetzte Elemente:** - "Run this code" → "Diesen Code ausführen" - "uses tagged constructor" → "verwendet markierten Konstruktor" **Nicht übersetzte Elemente:** - HTML-Tags und Attribute - Code innerhalb der `
`-Tags
- C++-spezifische Begriffe (`#include`, `int main`, `auto`, `const`, `std::string`, `assert`, etc.)
- String-Literal `"C++"`

Siehe auch

In-Place-Konstruktions-Tag
(Tag)
zeigt an, dass Elemente eines Bereichs sortiert sind (Eindeutigkeit nicht erforderlich)
(Tag)
zeigt an, dass Elemente eines Bereichs sortiert und eindeutig sind
(Tag)
(C++23)
konstruiert ein neues Nicht-View-Objekt aus einem Eingabebereich
(Funktions-Template)