std::from_range, std::from_range_t
Von cppreference.com
| Definiert in der Header-Datei <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 Tag zur Disambiguierung, der 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 auf den beabsichtigten Tag zu matchen.
Inhalt |
[edit] Standardbibliothek
Die folgenden Typen der Standardbibliothek verwenden den Typ std::from_range_t in ihren Konstruktoren
Container-Bibliothek | |
| (C++23) |
konstruiert den vector aus einem Bereich(public member function of std::vector<T,Allocator>)
|
| (C++26) |
konstruiert den inplace_vector aus einem Bereich(public member function of std::inplace_vector<T,N>)
|
| (C++23) |
konstruiert den deque aus einem Bereich(public member function of std::deque<T,Allocator>)
|
| (C++23) |
konstruiert die forward_list aus einem Bereich(public member function of std::forward_list<T,Allocator>)
|
| (C++23) |
konstruiert die list aus einem Bereich(public member function of std::list<T,Allocator>)
|
| (C++23) |
konstruiert das set aus einem Bereich(public member function of std::set<Key,Compare,Allocator>)
|
| (C++23) |
konstruiert die map aus einem Bereich(public member function of std::map<Key,T,Compare,Allocator>)
|
| (C++23) |
konstruiert das multiset aus einem Bereich(public member function of std::multiset<Key,Compare,Allocator>)
|
| (C++23) |
konstruiert die multimap aus einem Bereich(public member function of std::multimap<Key,T,Compare,Allocator>)
|
| (C++23) |
konstruiert das unordered_set aus einem Bereich(public member function of std::unordered_set<Key,Hash,KeyEqual,Allocator>)
|
| (C++23) |
konstruiert die unordered_map aus einem Bereich(public member function of std::unordered_map<Key,T,Hash,KeyEqual,Allocator>)
|
| (C++23) |
konstruiert das unordered_multiset aus einem Bereich(public member function of std::unordered_multiset<Key,Hash,KeyEqual,Allocator>)
|
| (C++23) |
konstruiert die unordered_multimap aus einem Bereich(public member function of std::unordered_multimap<Key,T,Hash,KeyEqual,Allocator>)
|
| (C++23) |
konstruiert die priority_queue aus einem Bereich(public member function of std::priority_queue<T,Container,Compare>)
|
| (C++23) |
konstruiert die queue aus einem Bereich(public member function of std::queue<T,Container>)
|
| (C++23) |
konstruiert die stack aus einem Bereich(public member function of std::stack<T,Container>)
|
| (C++23) |
konstruiert das flat_set aus einem Bereich(public member function of std::flat_set<Key,Compare,KeyContainer>)
|
| (C++23) |
konstruiert die flat_map aus einem Bereich(public member function of std::flat_map<Key,T,Compare,KeyContainer,MappedContainer>)
|
| (C++23) |
konstruiert das flat_multiset aus einem Bereich(public member function of std::flat_multiset<Key,Compare,KeyContainer>)
|
| (C++23) |
konstruiert die flat_multimap aus einem Bereich(public member function of std::flat_multimap<Key,T,Compare,KeyContainer,MappedContainer>)
|
Bibliothek für Zeichenketten | |
| (C++23) |
konstruiert den basic_string aus einem Bereich(public member function of std::basic_string<CharT,Traits,Allocator>)
|
[edit] Hinweise
| Feature-Test-Makro | Wert | Std | Feature |
|---|---|---|---|
__cpp_lib_containers_ranges |
202202L |
(C++23) | Konstruktor mit Tag zur Konstruktion aus einem containerkompatiblen Bereich |
[edit] Beispiel
Führen Sie diesen Code aus
#include <cassert> #include <string> int main() { #ifdef __cpp_lib_containers_ranges auto const range = {0x43, 43, 43}; std::string str{std::from_range, range}; // uses tagged constructor assert(str == "C++"); #endif }
[edit] Siehe auch
| Tag für In-Place-Konstruktion (Tag) | |
| zeigt an, dass Elemente eines Bereichs sortiert sind (Eindeutigkeit ist 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 Input-Range (Funktions-Template) |