std:: from_range, std:: from_range_t
From cppreference.net
|
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 |
|
|
(C++23)
|
Konstruiert den
vector
aus einem Bereich
(öffentliche Elementfunktion von
std::vector<T,Allocator>
)
|
|
(C++26)
|
Konstruiert den
inplace_vector
aus einem Bereich
(Öffentliche Mitgliedsfunktion von
std::inplace_vector<T,N>
)
|
|
(C++26)
|
konstruiert das
hive
aus einem Bereich
(öffentliche Elementfunktion von
Template:cpp/container/hive/title
)
|
|
(C++23)
|
Konstruiert die
deque
aus einem Bereich
(Öffentliche Elementfunktion von
std::deque<T,Allocator>
)
|
|
(C++23)
|
konstruiert die
forward_list
aus einem Bereich
(öffentliche Elementfunktion von
std::forward_list<T,Allocator>
)
|
|
(C++23)
|
konstruiert die
list
aus einem Bereich
(öffentliche Elementfunktion von
std::list<T,Allocator>
)
|
|
(C++23)
|
Konstruiert den
set
aus einem Bereich
(Öffentliche Mitgliedsfunktion von
std::set<Key,Compare,Allocator>
)
|
|
(C++23)
|
Konstruiert die
map
aus einem Bereich
(Öffentliche Elementfunktion von
std::map<Key,T,Compare,Allocator>
)
|
|
(C++23)
|
konstruiert den
multiset
aus einem Bereich
(öffentliche Member-Funktion von
std::multiset<Key,Compare,Allocator>
)
|
|
(C++23)
|
konstruiert den
multimap
aus einem Bereich
(öffentliche Elementfunktion von
std::multimap<Key,T,Compare,Allocator>
)
|
|
(C++23)
|
konstruiert den
unordered_set
aus einem Bereich
(öffentliche Elementfunktion von
std::unordered_set<Key,Hash,KeyEqual,Allocator>
)
|
|
(C++23)
|
Konstruiert die
unordered_map
aus einem Bereich
(öffentliche Member-Funktion von
std::unordered_map<Key,T,Hash,KeyEqual,Allocator>
)
|
|
(C++23)
|
konstruiert den
unordered_multiset
aus einem Bereich
(öffentliche Elementfunktion von
std::unordered_multiset<Key,Hash,KeyEqual,Allocator>
)
|
|
(C++23)
|
konstruiert den
unordered_multimap
aus einem Bereich
(öffentliche Elementfunktion von
std::unordered_multimap<Key,T,Hash,KeyEqual,Allocator>
)
|
|
(C++23)
|
Konstruiert die
priority_queue
aus einem Bereich
(öffentliche Elementfunktion von
std::priority_queue<T,Container,Compare>
)
|
|
(C++23)
|
konstruiert die
queue
aus einem Bereich
(öffentliche Elementfunktion von
std::queue<T,Container>
)
|
|
(C++23)
|
Konstruiert den
stack
aus einem Bereich
(Öffentliche Mitgliedsfunktion von
std::stack<T,Container>
)
|
|
(C++23)
|
Konstruiert den
flat_set
aus einem Bereich
(Öffentliche Elementfunktion von
std::flat_set<Key,Compare,KeyContainer>
)
|
|
(C++23)
|
Konstruiert den
flat_map
aus einem Bereich
(Öffentliche Elementfunktion von
std::flat_map<Key,T,Compare,KeyContainer,MappedContainer>
)
|
|
(C++23)
|
Konstruiert den
flat_multiset
aus einem Bereich
(Öffentliche Elementfunktion von
std::flat_multiset<Key,Compare,KeyContainer>
)
|
|
(C++23)
|
Konstruiert die
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) |