deduction guides for
std::unordered_multiset
|
Definido en el encabezado
<unordered_set>
|
||
|
template
<
class
InputIt,
|
(1) | (desde C++17) |
|
template
<
class
T,
class
Hash
=
std::
hash
<
T
>
,
|
(2) | (desde C++17) |
|
template
<
class
InputIt,
class
Alloc
>
unordered_multiset
(
InputIt, InputIt,
typename
/* ver abajo */
::
size_type
, Alloc
)
|
(3) | (desde C++17) |
|
template
<
class
InputIt,
class
Hash,
class
Alloc
>
unordered_multiset
(
InputIt, InputIt,
typename
/* ver abajo */
::
size_type
, Hash, Alloc
)
|
(4) | (desde C++17) |
|
template
<
class
T,
class
Alloc
>
unordered_multiset
(
std::
initializer_list
<
T
>
,
typename
/* ver más abajo */
::
size_type
, Alloc
)
|
(5) | (desde C++17) |
|
template
<
class
T,
class
Hash,
class
Alloc
>
unordered_multiset
(
std::
initializer_list
<
T
>
,
typename
/* ver más abajo */
::
size_type
,
|
(6) | (desde C++17) |
|
template
<
ranges::
input_range
R,
class
Hash
=
std::
hash
<
ranges::
range_value_t
<
R
>>
,
|
(7) | (desde C++23) |
|
template
<
ranges::
input_range
R,
class
Alloc
>
unordered_multiset
(
std::
from_range_t
, R
&&
,
|
(8) | (desde C++23) |
|
template
<
ranges::
input_range
R,
class
Alloc
>
unordered_multiset
(
std::
from_range_t
, R
&&
, Alloc
)
|
(9) | (desde C++23) |
|
template
<
ranges::
input_range
R,
class
Hash,
class
Alloc
>
unordered_multiset
(
std::
from_range_t
, R
&&
,
|
(10) | (desde C++23) |
unordered_multiset
para permitir la deducción desde un rango de iteradores (sobrecargas
(1,3,4)
) y
std::initializer_list
(sobrecargas
(2,5,6)
). Esta sobrecarga participa en la resolución de sobrecarga solo si
InputIt
satisface
LegacyInputIterator
,
Alloc
satisface
Allocator
, ni
Hash
ni
Pred
satisfacen
Allocator
,
Hash
no es un tipo integral.
unordered_multiset
para permitir la deducción desde una etiqueta
std::from_range_t
y un
input_range
.
Nota: el grado en que la biblioteca determina que un tipo no satisface
LegacyInputIterator
no está especificado, excepto que como mínimo los tipos integrales no califican como iteradores de entrada. Del mismo modo, el grado en que determina que un tipo no satisface
Allocator
no está especificado, excepto que como mínimo el tipo miembro
Alloc::value_type
debe existir y la expresión
std::
declval
<
Alloc
&
>
(
)
.
allocate
(
std::
size_t
{
}
)
debe estar bien formada cuando se trata como un operando no evaluado.
El size_type tipo de parámetro en estas guías se refiere al size_type tipo miembro del tipo deducido por la guía de deducción.
Notas
| Macro de prueba de características | Valor | Std | Característica |
|---|---|---|---|
__cpp_lib_containers_ranges
|
202202L
|
(C++23) | Construcción e inserción compatibles con rangos; sobrecargas (7-10) |
Ejemplo
#include <unordered_set> int main() { // guía #2 deduce std::unordered_multiset<int> std::unordered_multiset s = {1, 2, 3, 4}; // guía #1 deduce std::unordered_multiset<int> std::unordered_multiset s2(s.begin(), s.end()); }