Namespaces
Variants

deduction guides for std::flat_multimap

From cppreference.net

Défini dans l'en-tête <flat_map>
template < class KeyContainer, class MappedContainer,

class Compare = std:: less < typename KeyContainer :: value_type > >
flat_multimap ( KeyContainer, MappedContainer, Compare = Compare ( ) )
- > flat_multimap < typename KeyContainer :: value_type ,
typename MappedContainer :: value_type ,

Compare, KeyContainer, MappedContainer > ;
(1) (depuis C++23)
template < class KeyContainer, class MappedContainer, class Allocator >

flat_multimap ( KeyContainer, MappedContainer, Allocator )
- > flat_multimap < typename KeyContainer :: value_type ,
typename MappedContainer :: value_type ,
std:: less < typename KeyContainer :: value_type > ,

KeyContainer, MappedContainer > ;
(2) (depuis C++23)
template < class KeyContainer, class MappedContainer,

class Compare, class Allocator >
flat_multimap ( KeyContainer, MappedContainer, Compare, Allocator )
- > flat_multimap < typename KeyContainer :: value_type ,
typename MappedContainer :: value_type ,

Compare, KeyContainer, MappedContainer > ;
(3) (depuis C++23)
template < class KeyContainer, class MappedContainer,

class Compare = std:: less < typename KeyContainer :: value_type > >
flat_multimap ( std:: sorted_equivalent_t , KeyContainer, MappedContainer,
Compare = Compare ( ) )
- > flat_multimap < typename KeyContainer :: value_type ,
typename MappedContainer :: value_type ,

Compare, KeyContainer, MappedContainer > ;
(4) (depuis C++23)
template < class KeyContainer, class MappedContainer, class Allocator >

flat_multimap ( std:: sorted_equivalent_t , KeyContainer, MappedContainer,
Allocator )
- > flat_multimap < typename KeyContainer :: value_type ,
typename MappedContainer :: value_type ,
std:: less < typename KeyContainer :: value_type > ,

KeyContainer, MappedContainer > ;
(5) (depuis C++23)
template < class KeyContainer, class MappedContainer,

class Compare, class Allocator >
flat_multimap ( std:: sorted_equivalent_t , KeyContainer, MappedContainer,
Compare, Allocator )
- > flat_multimap < typename KeyContainer :: value_type ,
typename MappedContainer :: value_type ,

Compare, KeyContainer, MappedContainer > ;
(6) (depuis C++23)
template < class InputIt,

class Compare = std:: less < /*iter-key-t*/ < InputIt >> >
flat_multimap ( InputIt, InputIt, Compare = Compare ( ) )
- > flat_multimap < /*iter-key-t*/ < InputIt > ,

/*iter-mapped-t*/ < InputIt > , Compare > ;
(7) (depuis C++23)
template < class InputIt,

class Compare = std:: less < /*iter-key-t*/ < InputIt >> >
flat_multimap ( std:: sorted_equivalent_t , InputIt, InputIt,
Compare = Compare ( ) )
- > flat_multimap < /*iter-key-t*/ < InputIt > ,

/*iter-mapped-t*/ < InputIt > , Compare > ;
(8) (depuis C++23)
template < ranges:: input_range R,

class Compare = std:: less < /*range-key-t*/ < R >> ,
class Allocator = allocator < byte > >
flat_multimap ( std:: from_range_t , R && , Compare = Compare ( ) ,
Allocator = Allocator ( ) )
- > flat_multimap < /*range-key-t*/ < R > , /*range-mapped-t*/ < R > , Compare,
std:: vector < /*range-key-t*/ < R > ,
/*alloc-rebind*/ < Allocator,
/*range-key-t*/ < R >>> ,
std:: vector < /*range-mapped-t*/ < R > ,
/*alloc-rebind*/ < Allocator,

/*range-mapped-t*/ < R >>>> ;
(9) (depuis C++23)
template < ranges:: input_range R, class Allocator >

flat_multimap ( std:: from_range_t , R && , Allocator )
- > flat_multimap < /*range-key-t*/ < R > , /*range-mapped-t*/ < R > ,
std:: less < /*range-key-t*/ < R >> ,
std:: vector < /*range-key-t*/ < R > ,
/*alloc-rebind*/ < Allocator,
/*range-key-t*/ < R >>> ,
std:: vector < /*range-mapped-t*/ < R > ,
/*alloc-rebind*/ < Allocator,

/*range-mapped-t*/ < R >>>> ;
(10) (depuis C++23)
template < class Key, class T, class Compare = std:: less < Key > >

flat_multimap ( std:: initializer_list < pair < Key, T >> , Compare = Compare ( ) )

- > flat_multimap < Key, T, Compare > ;
(11) (depuis C++23)
template < class Key, class T, class Compare = std:: less < Key > >

flat_multimap ( std:: sorted_equivalent_t , std:: initializer_list < pair < Key, T >> ,
Compare = Compare ( ) )

- > flat_multimap < Key, T, Compare > ;
(12) (depuis C++23)
Alias de types d'aide uniquement d'exposition
template < class InputIt >

using /*iter-val-t*/ =

typename std:: iterator_traits < InputIt > :: value_type ;
( exposition uniquement* )
template < class InputIt >

using /*iter-key-t*/ =

std:: remove_const_t < std:: tuple_element_t < 0 , /*iter-val-t*/ < InputIt >>> ;
( exposition uniquement* )
template < class InputIt >

using /*iter-mapped-t*/ =

std:: tuple_element_t < 1 , /*iter-val-t*/ < InputIt >> ;
( exposition uniquement* )
template < class Allocator, class T >

using /*alloc-rebind*/ =

typename std:: allocator_traits < Allocator > :: template rebind_alloc < T > ;
( exposition uniquement* )
template < ranges:: input_range Range >

using /*range-key-t*/ =

std:: remove_const_t < typename ranges:: range_value_t < Range > :: first_type > ;
( exposition uniquement* )
template < ranges:: input_range Range >

using /*type-mappé-de-plage*/ =

typename ranges:: range_value_t < Range > :: second_type ;
( exposition uniquement* )

Ces guides de déduction sont fournis pour afin de permettre la déduction à partir de :

1) Un conteneur de clés, un conteneur mappé et un comparateur.
2) Un conteneur de clés, un conteneur mappé et un allocateur.
3) Un conteneur de clés, un conteneur mappé, un comparateur et un allocateur.
4) Le std::sorted_equivalent_t tag, un conteneur de clés, un conteneur de valeurs mappées et un comparateur.
5) Le std::sorted_equivalent_t tag, un conteneur de clés, un conteneur de valeurs mappées et un allocateur.
6) Le std::sorted_equivalent_t tag, un conteneur de clés, un conteneur de valeurs mappées, un comparateur et un allocateur.
7) Une plage d'itérateurs et un comparateur.
8) Le std::sorted_equivalent_t tag, une plage d'itérateurs et un comparateur.
9) Le tag std:: from_range_t , une plage input_range , un comparateur et un allocateur.
10) Le tag std:: from_range_t , une plage input_range et un allocateur.
11) Le std::initializer_list et un comparateur.
12) Le tag std::sorted_equivalent_t , le std::initializer_list et un comparateur.

Ces surcharges participent à la résolution de surcharge seulement si InputIt satisfait LegacyInputIterator , Alloc satisfait Allocator , et Comp ne satisfait pas Allocator .

Note : la mesure dans laquelle la bibliothèque détermine qu'un type ne satisfait pas LegacyInputIterator n'est pas spécifiée, sauf qu'au minimum les types entiers ne sont pas qualifiés comme itérateurs d'entrée. De même, la mesure dans laquelle elle détermine qu'un type ne satisfait pas Allocator n'est pas spécifiée, sauf qu'au minimum le type membre Alloc::value_type doit exister et l'expression std:: declval < Alloc & > ( ) . allocate ( std:: size_t { } ) doit être bien formée lorsqu'elle est traitée comme un opérande non évalué.

Exemple