std::from_range, std::from_range_t
Depuis fr.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 étiquette de désambiguïsation qui peut être passée aux constructeurs des conteneurs appropriés pour indiquer que le membre contenu est construit à partir d'un range.
Le type correspondant std::from_range_t peut être utilisé dans la liste de paramètres du constructeur pour correspondre à l'étiquette prévue.
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++23) |
construit le hive à partir d'une plage (fonction membre publique de std::hive<T,Allocator>)
|
(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 le 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 le 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 le unordered_set à partir d'une plage (fonction membre publique de std::unordered_set<Key,Hash,KeyEqual,Allocator>)
|
(C++23) |
construit le unordered_map à partir d'une plage (fonction membre publique de std::unordered_map<Key,T,Hash,KeyEqual,Allocator>)
|
(C++23) |
construit le unordered_multiset à partir d'une plage (fonction membre publique de std::unordered_multiset<Key,Hash,KeyEqual,Allocator>)
|
(C++23) |
construit le unordered_multimap à partir d'une plage (fonction membre publique de std::unordered_multimap<Key,T,Hash,KeyEqual,Allocator>)
|
(C++23) |
construit le priority_queue à partir d'une plage (fonction membre publique de std::priority_queue<T,Container,Compare>)
|
(C++23) |
construit le queue à partir d'une plage (fonction membre publique de std::queue<T,Container>)
|
(C++23) |
construit le 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) |