deduction guides for std::flat_map
 
 
 <flat_map> 
           class Compare = std::less <typename KeyContainer::value_type> >
flat_map( KeyContainer, MappedContainer, Compare = Compare() )
    -> flat_map<typename KeyContainer::value_type,
                typename MappedContainer::value_type,
flat_map( KeyContainer, MappedContainer, Allocator )
    -> flat_map<typename KeyContainer::value_type,
                typename MappedContainer::value_type,
                std::less <typename KeyContainer::value_type>,
          class Compare, class Allocator >
flat_map( KeyContainer, MappedContainer, Compare, Allocator )
    -> flat_map<typename KeyContainer::value_type,
                typename MappedContainer::value_type,
          class Compare = std::less <typename KeyContainer::value_type> >
flat_map( std::sorted_unique_t, KeyContainer, MappedContainer,
          Compare = Compare() )
    -> flat_map<typename KeyContainer::value_type,
                typename MappedContainer::value_type,
flat_map( std::sorted_unique_t, KeyContainer, MappedContainer,
          Allocator )
    -> flat_map<typename KeyContainer::value_type,
                typename MappedContainer::value_type,
                std::less <typename KeyContainer::value_type>,
          class Compare, class Allocator>
flat_map( std::sorted_unique_t, KeyContainer, MappedContainer,
          Compare, Allocator )
    -> flat_map<typename KeyContainer::value_type,
                typename MappedContainer::value_type,
          class Compare = std::less </*iter-key-t*/<InputIt>> >
flat_map( InputIt, InputIt, Compare = Compare() )
    -> flat_map</*iter-key-t*/<InputIt>,
          class Compare = std::less </*iter-key-t*/<InputIt>> >
flat_map( std::sorted_unique_t, InputIt, InputIt,
          Compare = Compare() )
    -> flat_map</*iter-key-t*/<InputIt>,
          class Compare = std::less </*range-key-t*/<R>>,
          class Allocator = allocator<byte> >
flat_map( std::from_range_t, R&&, Compare = Compare(),
          Allocator = Allocator() )
    -> flat_map</*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,
flat_map( std::from_range_t, R&&, Allocator )
    -> flat_map</*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,
flat_map( std::initializer_list <pair<Key, T>>, Compare = Compare() )
flat_map( std::sorted_unique_t, std::initializer_list <pair<Key, T>>,
          Compare = Compare() )
using /*iter-val-t*/ =
using /*iter-key-t*/ =
using /*iter-mapped-t*/ =
using /*alloc-rebind*/ = 
using /*range-key-t*/ =
using /*range-mapped-t*/ =
These deduction guides are provided for to allow deduction from:
These overloads participate in overload resolution only if InputIt satisfies LegacyInputIterator, Alloc satisfies Allocator, and Comp does not satisfy Allocator.
Note: the extent to which the library determines that a type does not satisfy LegacyInputIterator is unspecified, except that as a minimum integral types do not qualify as input iterators. Likewise, the extent to which it determines that a type does not satisfy Allocator is unspecified, except that as a minimum the member type Alloc::value_type must exist and the expression std::declval <Alloc&>().allocate(std::size_t {}) must be well-formed when treated as an unevaluated operand.
[edit] Example
Reason: no example