Namespaces
Variants

deduction guides for std::multiset

From cppreference.net

(Anmerkung: Der bereitgestellte HTML-Code enthält keinen übersetzbaren Text, da alle Tags leer sind. Die Struktur bleibt unverändert, wie angefordert.)
Definiert in Header <set>
template <

class InputIt,
class Comp = std:: less < typename std:: iterator_traits < InputIt > :: value_type > ,
class Alloc = std:: allocator < typename std:: iterator_traits < InputIt > :: value_type >>
multiset ( InputIt, InputIt, Comp = Comp ( ) , Alloc = Alloc ( ) )

- > multiset < typename std:: iterator_traits < InputIt > :: value_type , Comp, Alloc > ;
(1) (seit C++17)
template <

class Key, class Comp = std:: less < Key > ,
class Alloc = std:: allocator < Key > >
multiset ( std:: initializer_list < Key > , Comp = Comp ( ) , Alloc = Alloc ( ) )

- > multiset < Key, Comp, Alloc > ;
(2) (seit C++17)
template < class InputIt, class Alloc >

multiset ( InputIt, InputIt, Alloc )
- > multiset < typename std:: iterator_traits < InputIt > :: value_type ,

std:: less < typename std:: iterator_traits < InputIt > :: value_type > , Alloc > ;
(3) (seit C++17)
template < class Key, class Alloc >

multiset ( std:: initializer_list < Key > , Alloc )

- > multiset < Key, std:: less < 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 >> >
multiset ( std:: from_range_t , R && , Compare = Compare ( ) , Alloc = Alloc ( ) )

- > multiset < ranges:: range_value_t < R > , Compare, Alloc > ;
(5) (seit C++23)
template < ranges:: input_range R, class Alloc >

multiset ( std:: from_range_t , R && , Alloc )

- > multiset < ranges:: range_value_t < R > , std:: less < ranges:: range_value_t < R >> , Alloc > ;
(6) (seit C++23)
1-4) Diese Deduction Guides werden für multiset bereitgestellt, um die Deduktion aus einem Iteratorbereich (Overloads (1,3) ) und std::initializer_list (Overloads (2,4) ) zu ermöglichen.
5,6) Diese Deduktionsführer werden für 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());
}