std:: from_range, std:: from_range_t
From cppreference.net
|
Défini dans l'en-tête
<ranges>
|
||
|
struct
from_range_t
{
explicit
from_range_t
(
)
=
default
;
}
;
|
(depuis C++23) | |
|
inline
constexpr
std
::
from_range_t
from_range
{
}
;
|
(depuis C++23) | |
std::from_range
est une balise de désambiguïsation qui peut être transmise aux constructeurs des conteneurs appropriés pour indiquer que le membre contenu est construit à partir d'une plage.
Le type correspondant
std::from_range_t
peut être utilisé dans la liste des paramètres du constructeur pour correspondre à l'étiquette prévue.
Table des matières |
Bibliothèque standard
Les types suivants de la bibliothèque standard utilisent
std::from_range_t
dans leurs constructeurs :
Bibliothèque de conteneurs |
|
|
(C++23)
|
construit le
vector
à partir d'une plage
(fonction membre publique de
std::vector<T,Allocator>
)
|
|
(C++26)
|
construit le
inplace_vector
à partir d'une plage
(fonction membre publique de
std::inplace_vector<T,N>
)
|
|
(C++26)
|
construit le
hive
à partir d'une plage
(fonction membre publique de
Template:cpp/container/hive/title
)
|
|
(C++23)
|
construit le
deque
à partir d'une plage
(fonction membre publique de
std::deque<T,Allocator>
)
|
|
(C++23)
|
construit le
forward_list
à partir d'une plage
(fonction membre publique de
std::forward_list<T,Allocator>
)
|
|
(C++23)
|
construit la
list
à partir d'une plage
(fonction membre publique de
std::list<T,Allocator>
)
|
|
(C++23)
|
construit le
set
à partir d'une plage
(fonction membre publique de
std::set<Key,Compare,Allocator>
)
|
|
(C++23)
|
construit la
map
à partir d'une plage
(fonction membre publique de
std::map<Key,T,Compare,Allocator>
)
|
|
(C++23)
|
construit le
multiset
à partir d'une plage
(fonction membre publique de
std::multiset<Key,Compare,Allocator>
)
|
|
(C++23)
|
construit le
multimap
à partir d'une plage
(fonction membre publique de
std::multimap<Key,T,Compare,Allocator>
)
|
|
(C++23)
|
construit l'
unordered_set
à partir d'une plage
(fonction membre publique de
std::unordered_set<Key,Hash,KeyEqual,Allocator>
)
|
|
(C++23)
|
construit l'
unordered_map
à partir d'une plage
(fonction membre publique de
std::unordered_map<Key,T,Hash,KeyEqual,Allocator>
)
|
|
(C++23)
|
construit l'
unordered_multiset
à partir d'une plage
(fonction membre publique de
std::unordered_multiset<Key,Hash,KeyEqual,Allocator>
)
|
|
(C++23)
|
construit l'
unordered_multimap
à partir d'une plage
(fonction membre publique de
std::unordered_multimap<Key,T,Hash,KeyEqual,Allocator>
)
|
|
(C++23)
|
construit la
priority_queue
à partir d'une plage
(fonction membre publique de
std::priority_queue<T,Container,Compare>
)
|
|
(C++23)
|
construit la
queue
à partir d'une plage
(fonction membre publique de
std::queue<T,Container>
)
|
|
(C++23)
|
construit la
stack
à partir d'une plage
(fonction membre publique de
std::stack<T,Container>
)
|
|
(C++23)
|
construit le
flat_set
à partir d'une plage
(fonction membre publique de
std::flat_set<Key,Compare,KeyContainer>
)
|
|
(C++23)
|
construit le
flat_map
à partir d'une plage
(fonction membre publique de
std::flat_map<Key,T,Compare,KeyContainer,MappedContainer>
)
|
|
(C++23)
|
construit le
flat_multiset
à partir d'une plage
(fonction membre publique de
std::flat_multiset<Key,Compare,KeyContainer>
)
|
|
(C++23)
|
construit le
flat_multimap
à partir d'une plage
(fonction membre publique de
std::flat_multimap<Key,T,Compare,KeyContainer,MappedContainer>
)
|
Bibliothèque de chaînes de caractères |
|
|
(C++23)
|
construit le
basic_string
à partir d'une plage
(fonction membre publique de
std::basic_string<CharT,Traits,Allocator>
)
|
Notes
| Macro de test de fonctionnalité | Valeur | Std | Fonctionnalité |
|---|---|---|---|
__cpp_lib_containers_ranges
|
202202L
|
(C++23) | Constructeurs étiquetés pour construire à partir d'un intervalle compatible avec le conteneur |
Exemple
Exécuter ce code
#include <cassert> #include <string> int main() { #ifdef __cpp_lib_containers_ranges auto const range = {0x43, 43, 43}; std::string str{std::from_range, range}; // utilise le constructeur étiqueté assert(str == "C++"); #endif }
Voir aussi
|
étiquette de construction en place
(étiquette) |
|
|
indique que les éléments d'une plage sont triés (l'unicité n'est pas requise)
(étiquette) |
|
|
(C++23)
|
indique que les éléments d'une plage sont triés et uniques
(étiquette) |
|
(C++23)
|
construit un nouvel objet non-vue à partir d'une plage d'entrée
(modèle de fonction) |