deduction guides for
std::multiset
|
Definiert in Header
<set>
|
||
|
template
<
class
InputIt,
|
(1) | (seit C++17) |
|
template
<
class
Key,
class
Comp
=
std::
less
<
Key
>
,
|
(2) | (seit C++17) |
|
template
<
class
InputIt,
class
Alloc
>
multiset
(
InputIt, InputIt, Alloc
)
|
(3) | (seit C++17) |
|
template
<
class
Key,
class
Alloc
>
multiset
(
std::
initializer_list
<
Key
>
, Alloc
)
|
(4) | (seit 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) | (seit C++23) |
|
template
<
ranges::
input_range
R,
class
Alloc
>
multiset
(
std::
from_range_t
, R
&&
, Alloc
)
|
(6) | (seit C++23) |
multiset
bereitgestellt, um die Deduktion aus einem Iteratorbereich (Overloads
(1,3)
) und
std::initializer_list
(Overloads
(2,4)
) zu ermöglichen.
multiset
bereitgestellt, um die Ableitung von einem
std::from_range_t
-Tag und einem
input_range
zu ermöglichen.
Diese Überladungen nehmen nur dann an der Überladungsauflösung teil, wenn
InputIt
die Anforderungen
LegacyInputIterator
erfüllt,
Alloc
die Anforderungen
Allocator
erfüllt, und
Comp
nicht die Anforderungen
Allocator
erfüllt.
Hinweis: Das Ausmaß, in dem die Bibliothek feststellt, dass ein Typ nicht
LegacyInputIterator
erfüllt, ist nicht spezifiziert, außer dass mindestens integrale Typen nicht als Input-Iteratoren qualifizieren. Ebenso ist das Ausmaß, in dem sie feststellt, dass ein Typ nicht
Allocator
erfüllt, nicht spezifiziert, außer dass mindestens der Member-Typ
Alloc::value_type
existieren muss und der Ausdruck
std::
declval
<
Alloc
&
>
(
)
.
allocate
(
std::
size_t
{
}
)
wohlgeformt sein muss, wenn er als nicht ausgewerteter Operand behandelt wird.
Hinweise
| Feature-Test Makro | Wert | Std | Feature |
|---|---|---|---|
__cpp_lib_containers_ranges
|
202202L
|
(C++23) | Ranges-basierte Konstruktion und Einfügung; Überladung (5,6) |
Beispiel
#include <set> int main() { // Leitfaden #2 leitet std::multiset<int> ab std::multiset s = {1, 2, 3, 4}; // Leitfaden #1 leitet std::multiset<int> ab std::multiset s2(s.begin(), s.end()); }