deduction guides for
std::multiset
|
Definido en el encabezado
<set>
|
||
|
template
<
class
InputIt,
|
(1) | (desde C++17) |
|
template
<
class
Key,
class
Comp
=
std::
less
<
Key
>
,
|
(2) | (desde C++17) |
|
template
<
class
InputIt,
class
Alloc
>
multiset
(
InputIt, InputIt, Alloc
)
|
(3) | (desde C++17) |
|
template
<
class
Key,
class
Alloc
>
multiset
(
std::
initializer_list
<
Key
>
, Alloc
)
|
(4) | (desde C++17) |
|
template
<
ranges::
input_range
R,
class
Compare
=
less
<
ranges::
range_value_t
<
R
>>
,
class
Alloc
=
std::
allocator
<
ranges::
range_value_t
<
R
>>
>
|
(5) | (desde C++23) |
|
template
<
ranges::
input_range
R,
class
Alloc
>
multiset
(
std::
from_range_t
, R
&&
, Alloc
)
|
(6) | (desde C++23) |
multiset
para permitir la deducción desde un rango de iteradores (sobrecargas
(1,3)
) y
std::initializer_list
(sobrecargas
(2,4)
).
multiset
para permitir la deducción desde una etiqueta
std::from_range_t
y un
input_range
.
Estas sobrecargas participan en la resolución de sobrecarga solo si
InputIt
satisface
LegacyInputIterator
,
Alloc
satisface
Allocator
, y
Comp
no satisface
Allocator
.
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.
Notas
| Macro de prueba de características | Valor | Std | Característica |
|---|---|---|---|
__cpp_lib_containers_ranges
|
202202L
|
(C++23) | Construcción e inserción con reconocimiento de rangos; sobrecarga (5,6) |
Ejemplo
#include <set> int main() { // la guía #2 deduce std::multiset<int> std::multiset s = {1, 2, 3, 4}; // la guía #1 deduce std::multiset<int> std::multiset s2(s.begin(), s.end()); }