std::from_range, std::from_range_t
Von de.cppreference.net
| Definiert in 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 Disambiguierungs-Tag, das an die Konstruktoren der geeigneten Container übergeben werden kann, um anzugeben, dass das enthaltene Element aus einem Bereich konstruiert wird.
Der entsprechende Typ std::from_range_t kann in der Parameterliste des Konstruktors verwendet werden, um das beabsichtigte Tag zu identifizieren.
Standardbibliothek
Die folgenden Standardbibliothekstypen verwenden
std::from_range_t
Typ in ihren Konstruktoren:
Container-Bibliothek | |
(C++23) |
konstruiert das vector aus einem Bereich (öffentliche Elementfunktion von std::vector<T,Allocator>)
|
(C++26) |
konstruiert das inplace_vector aus einem Bereich (öffentliche Elementfunktion von std::inplace_vector<T,N>)
|
(C++26) |
konstruiert das hive aus einem Bereich (öffentliche Elementfunktion von std::hive<T,Allocator>)
|
(C++23) |
konstruiert das deque aus einem Bereich (öffentliche Elementfunktion von std::deque<T,Allocator>)
|
(C++23) |
konstruiert das forward_list aus einem Bereich (öffentliche Elementfunktion von std::forward_list<T,Allocator>)
|
(C++23) |
konstruiert das list aus einem Bereich (öffentliche Elementfunktion von std::list<T,Allocator>)
|
(C++23) |
konstruiert das set aus einem Bereich (öffentliche Elementfunktion von std::set<Key,Compare,Allocator>)
|
(C++23) |
konstruiert das map aus einem Bereich (öffentliche Elementfunktion von std::map<Key,T,Compare,Allocator>)
|
(C++23) |
konstruiert das multiset aus einem Bereich (öffentliche Elementfunktion von std::multiset<Key,Compare,Allocator>)
|
(C++23) |
konstruiert das multimap aus einem Bereich (öffentliche Elementfunktion von std::multimap<Key,T,Compare,Allocator>)
|
(C++23) |
konstruiert das unordered_set aus einem Bereich (öffentliche Elementfunktion von std::unordered_set<Key,Hash,KeyEqual,Allocator>)
|
(C++23) |
konstruiert das unordered_map aus einem Bereich (öffentliche Elementfunktion von std::unordered_map<Key,T,Hash,KeyEqual,Allocator>)
|
(C++23) |
konstruiert das unordered_multiset aus einem Bereich (öffentliche Elementfunktion von std::unordered_multiset<Key,Hash,KeyEqual,Allocator>)
|
(C++23) |
konstruiert das unordered_multimap aus einem Bereich (öffentliche Elementfunktion von std::unordered_multimap<Key,T,Hash,KeyEqual,Allocator>)
|
(C++23) |
konstruiert das priority_queue aus einem Bereich (öffentliche Elementfunktion von std::priority_queue<T,Container,Compare>)
|
(C++23) |
konstruiert das queue aus einem Bereich (öffentliche Elementfunktion von std::queue<T,Container>)
|
(C++23) |
konstruiert das stack aus einem Bereich (öffentliche Elementfunktion von std::stack<T,Container>)
|
(C++23) |
konstruiert das flat_set aus einem Bereich (öffentliche Elementfunktion von std::flat_set<Key,Compare,KeyContainer>)
|
(C++23) |
konstruiert das flat_map aus einem Bereich (öffentliche Elementfunktion von std::flat_map<Key,T,Compare,KeyContainer,MappedContainer>)
|
(C++23) |
konstruiert das flat_multiset aus einem Bereich (öffentliche Elementfunktion von std::flat_multiset<Key,Compare,KeyContainer>)
|
(C++23) |
konstruiert das flat_multimap aus einem Bereich (öffentliche Elementfunktion von std::flat_multimap<Key,T,Compare,KeyContainer,MappedContainer>)
|
String-Bibliothek |
|
|
(C++23)
|
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
Diesen Code ausführen
#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 }
`-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) |
|
|
(C++23)
|
zeigt an, dass Elemente eines Bereichs sortiert und eindeutig sind
(Tag) |
|
(C++23)
|
konstruiert ein neues Nicht-View-Objekt aus einem Eingabebereich
(Funktions-Template) |