std:: from_range, std:: from_range_t
From 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 puede pasarse a los constructores de los contenedores apropiados para indicar que el miembro contenido se construye mediante rango.
El tipo correspondiente
std::from_range_t
puede utilizarse en la lista de parámetros del constructor para coincidir con la etiqueta prevista.
Contenidos |
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
desde 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
desde un rango
(función miembro pública de
Template:cpp/container/hive/title
)
|
|
(C++23)
|
construye el
deque
desde 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
desde 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
desde 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
desde un rango
(función miembro pública de
std::queue<T,Container>
)
|
|
(C++23)
|
construye el
stack
desde 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) |