std::from_range, std::from_range_t
De es.cppreference.net
| Definido en el encabezado <ranges>
|
||
struct from_range_t { explicit from_range_t() = default; };
|
(desde C++23) | |
inline constexpr std::from_range_t from_range {};
|
(desde C++23) | |
std::from_range es una etiqueta de desambiguación que se puede pasar a los constructores de los contenedores adecuados para indicar que el miembro contenido se construye a partir de un rango.
El tipo correspondiente std::from_range_t se puede usar en la lista de parámetros del constructor para que coincida con la etiqueta prevista.
Biblioteca estándar
Los siguientes tipos de la biblioteca estándar utilizan
std::from_range_t
en sus constructores:
Biblioteca de contenedores | |
(C++23) |
construye el vector a partir de un rango (función miembro pública de std::vector<T,Allocator>)
|
(C++26) |
construye el inplace_vector a partir de un rango (función miembro pública de std::inplace_vector<T,N>)
|
(C++26) |
construye el hive a partir de un rango (función miembro pública de std::hive<T,Allocator>)
|
(C++23) |
construye el deque a partir de un rango (función miembro pública de std::deque<T,Allocator>)
|
(C++23) |
construye el forward_list a partir de un rango (función miembro pública de std::forward_list<T,Allocator>)
|
(C++23) |
construye el list a partir de un rango (función miembro pública de std::list<T,Allocator>)
|
(C++23) |
construye el set a partir de un rango (función miembro pública de std::set<Key,Compare,Allocator>)
|
(C++23) |
construye el map a partir de un rango (función miembro pública de std::map<Key,T,Compare,Allocator>)
|
(C++23) |
construye el multiset a partir de un rango (función miembro pública de std::multiset<Key,Compare,Allocator>)
|
(C++23) |
construye el multimap a partir de un rango (función miembro pública de std::multimap<Key,T,Compare,Allocator>)
|
(C++23) |
construye el unordered_set a partir de un rango (función miembro pública de std::unordered_set<Key,Hash,KeyEqual,Allocator>)
|
(C++23) |
construye el unordered_map a partir de un rango (función miembro pública de std::unordered_map<Key,T,Hash,KeyEqual,Allocator>)
|
(C++23) |
construye el unordered_multiset a partir de un rango (función miembro pública de std::unordered_multiset<Key,Hash,KeyEqual,Allocator>)
|
(C++23) |
construye el unordered_multimap a partir de un rango (función miembro pública de std::unordered_multimap<Key,T,Hash,KeyEqual,Allocator>)
|
(C++23) |
construye el priority_queue a partir de un rango (función miembro pública de std::priority_queue<T,Container,Compare>)
|
(C++23) |
construye el queue a partir de un rango (función miembro pública de std::queue<T,Container>)
|
(C++23) |
construye el stack a partir de un rango (función miembro pública de std::stack<T,Container>)
|
(C++23) |
construye el flat_set a partir de un rango (función miembro pública de std::flat_set<Key,Compare,KeyContainer>)
|
(C++23) |
construye el flat_map a partir de un rango (función miembro pública de std::flat_map<Key,T,Compare,KeyContainer,MappedContainer>)
|
(C++23) |
construye el flat_multiset a partir de un rango (función miembro pública de std::flat_multiset<Key,Compare,KeyContainer>)
|
(C++23) |
construye el flat_multimap a partir de un rango (función miembro pública de std::flat_multimap<Key,T,Compare,KeyContainer,MappedContainer>)
|
Biblioteca de cadenas |
|
|
(C++23)
|
construye el
basic_string
desde un rango
(función miembro pública de
std::basic_string<CharT,Traits,Allocator>
)
|
Notas
| Macro de prueba de características | Valor | Std | Característica |
|---|---|---|---|
__cpp_lib_containers_ranges
|
202202L
|
(C++23) | Constructores etiquetados para construir desde rango compatible con contenedor |
Ejemplo
Ejecutar este código
#include <cassert> #include <string> int main() { #ifdef __cpp_lib_containers_ranges auto const range = {0x43, 43, 43}; std::string str{std::from_range, range}; // utiliza constructor etiquetado assert(str == "C++"); #endif }
Véase también
|
etiqueta de construcción in-situ
(etiqueta) |
|
|
indica que los elementos de un rango están ordenados (no se requiere unicidad)
(etiqueta) |
|
|
(C++23)
|
indica que los elementos de un rango están ordenados y son únicos
(etiqueta) |
|
(C++23)
|
construye un nuevo objeto no-vista a partir de un rango de entrada
(plantilla de función) |