mirror of
https://github.com/boostorg/container.git
synced 2025-08-02 05:54:28 +02:00
merge CTADs with equivalent parameter-declaration-clauses
This commit is contained in:
@@ -49,6 +49,10 @@
|
|||||||
#include <initializer_list>
|
#include <initializer_list>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef BOOST_CONTAINER_NO_CXX17_CTAD
|
||||||
|
#include <type_traits>
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace boost {
|
namespace boost {
|
||||||
namespace container {
|
namespace container {
|
||||||
|
|
||||||
@@ -1585,20 +1589,21 @@ flat_map(InputIterator, InputIterator) ->
|
|||||||
flat_map< it_based_non_const_first_type_t<InputIterator>
|
flat_map< it_based_non_const_first_type_t<InputIterator>
|
||||||
, it_based_second_type_t<InputIterator>>;
|
, it_based_second_type_t<InputIterator>>;
|
||||||
|
|
||||||
template < typename InputIterator, typename Allocator
|
template < typename InputIterator, typename AllocatorOrCompare>
|
||||||
, typename = dtl::require_allocator_t<Allocator>>
|
flat_map(InputIterator, InputIterator, AllocatorOrCompare const&) ->
|
||||||
flat_map(InputIterator, InputIterator, Allocator const&) ->
|
flat_map< it_based_non_const_first_type_t<InputIterator>
|
||||||
flat_map< it_based_non_const_first_type_t<InputIterator>
|
, it_based_second_type_t<InputIterator>
|
||||||
, it_based_second_type_t<InputIterator>
|
, std::conditional_t< // Compare
|
||||||
, std::less<it_based_non_const_first_type_t<InputIterator>>
|
dtl::is_allocator<AllocatorOrCompare>::value
|
||||||
, Allocator>;
|
, std::less<it_based_non_const_first_type_t<InputIterator>>
|
||||||
|
, AllocatorOrCompare
|
||||||
template < typename InputIterator, typename Compare
|
>
|
||||||
, typename = dtl::require_nonallocator_t<Compare>>
|
, std::conditional_t< // Allocator
|
||||||
flat_map(InputIterator, InputIterator, Compare const&) ->
|
dtl::is_allocator<AllocatorOrCompare>::value
|
||||||
flat_map< it_based_non_const_first_type_t<InputIterator>
|
, AllocatorOrCompare
|
||||||
, it_based_second_type_t<InputIterator>
|
, new_allocator<std::pair<it_based_non_const_first_type_t<InputIterator>, it_based_second_type_t<InputIterator>>>
|
||||||
, Compare>;
|
>
|
||||||
|
>;
|
||||||
|
|
||||||
template < typename InputIterator, typename Compare, typename Allocator
|
template < typename InputIterator, typename Compare, typename Allocator
|
||||||
, typename = dtl::require_nonallocator_t<Compare>
|
, typename = dtl::require_nonallocator_t<Compare>
|
||||||
@@ -1614,20 +1619,21 @@ flat_map(ordered_unique_range_t, InputIterator, InputIterator) ->
|
|||||||
flat_map< it_based_non_const_first_type_t<InputIterator>
|
flat_map< it_based_non_const_first_type_t<InputIterator>
|
||||||
, it_based_second_type_t<InputIterator>>;
|
, it_based_second_type_t<InputIterator>>;
|
||||||
|
|
||||||
template < typename InputIterator, typename Allocator
|
template < typename InputIterator, typename AllocatorOrCompare>
|
||||||
, typename = dtl::require_allocator_t<Allocator>>
|
flat_map(ordered_unique_range_t, InputIterator, InputIterator, AllocatorOrCompare const&) ->
|
||||||
flat_map(ordered_unique_range_t, InputIterator, InputIterator, Allocator const&) ->
|
|
||||||
flat_map< it_based_non_const_first_type_t<InputIterator>
|
flat_map< it_based_non_const_first_type_t<InputIterator>
|
||||||
, it_based_second_type_t<InputIterator>
|
, it_based_second_type_t<InputIterator>
|
||||||
, std::less<it_based_non_const_first_type_t<InputIterator>>
|
, std::conditional_t< // Compare
|
||||||
, Allocator>;
|
dtl::is_allocator<AllocatorOrCompare>::value
|
||||||
|
, std::less<it_based_non_const_first_type_t<InputIterator>>
|
||||||
template < typename InputIterator, typename Compare
|
, AllocatorOrCompare
|
||||||
, typename = dtl::require_nonallocator_t<Compare>>
|
>
|
||||||
flat_map(ordered_unique_range_t, InputIterator, InputIterator, Compare const&) ->
|
, std::conditional_t< // Allocator
|
||||||
flat_map< it_based_non_const_first_type_t<InputIterator>
|
dtl::is_allocator<AllocatorOrCompare>::value
|
||||||
, it_based_second_type_t<InputIterator>
|
, AllocatorOrCompare
|
||||||
, Compare>;
|
, new_allocator<std::pair<it_based_non_const_first_type_t<InputIterator>, it_based_second_type_t<InputIterator>>>
|
||||||
|
>
|
||||||
|
>;
|
||||||
|
|
||||||
template < typename InputIterator, typename Compare, typename Allocator
|
template < typename InputIterator, typename Compare, typename Allocator
|
||||||
, typename = dtl::require_nonallocator_t<Compare>
|
, typename = dtl::require_nonallocator_t<Compare>
|
||||||
@@ -2891,20 +2897,21 @@ flat_multimap(InputIterator, InputIterator) ->
|
|||||||
flat_multimap< it_based_non_const_first_type_t<InputIterator>
|
flat_multimap< it_based_non_const_first_type_t<InputIterator>
|
||||||
, it_based_second_type_t<InputIterator>>;
|
, it_based_second_type_t<InputIterator>>;
|
||||||
|
|
||||||
template < typename InputIterator, typename Allocator
|
template < typename InputIterator, typename AllocatorOrCompare>
|
||||||
, typename = dtl::require_allocator_t<Allocator>>
|
flat_multimap(InputIterator, InputIterator, AllocatorOrCompare const&) ->
|
||||||
flat_multimap(InputIterator, InputIterator, Allocator const&) ->
|
|
||||||
flat_multimap< it_based_non_const_first_type_t<InputIterator>
|
flat_multimap< it_based_non_const_first_type_t<InputIterator>
|
||||||
, it_based_second_type_t<InputIterator>
|
, it_based_second_type_t<InputIterator>
|
||||||
, std::less<it_based_non_const_first_type_t<InputIterator>>
|
, std::conditional_t< // Compare
|
||||||
, Allocator>;
|
dtl::is_allocator<AllocatorOrCompare>::value
|
||||||
|
, std::less<it_based_non_const_first_type_t<InputIterator>>
|
||||||
template < typename InputIterator, typename Compare
|
, AllocatorOrCompare
|
||||||
, typename = dtl::require_nonallocator_t<Compare>>
|
>
|
||||||
flat_multimap(InputIterator, InputIterator, Compare const&) ->
|
, std::conditional_t< // Allocator
|
||||||
flat_multimap< it_based_non_const_first_type_t<InputIterator>
|
dtl::is_allocator<AllocatorOrCompare>::value
|
||||||
, it_based_second_type_t<InputIterator>
|
, AllocatorOrCompare
|
||||||
, Compare>;
|
, new_allocator<std::pair<it_based_non_const_first_type_t<InputIterator>, it_based_second_type_t<InputIterator>>>
|
||||||
|
>
|
||||||
|
>;
|
||||||
|
|
||||||
template < typename InputIterator, typename Compare, typename Allocator
|
template < typename InputIterator, typename Compare, typename Allocator
|
||||||
, typename = dtl::require_nonallocator_t<Compare>
|
, typename = dtl::require_nonallocator_t<Compare>
|
||||||
@@ -2920,20 +2927,21 @@ flat_multimap(ordered_range_t, InputIterator, InputIterator) ->
|
|||||||
flat_multimap< it_based_non_const_first_type_t<InputIterator>
|
flat_multimap< it_based_non_const_first_type_t<InputIterator>
|
||||||
, it_based_second_type_t<InputIterator>>;
|
, it_based_second_type_t<InputIterator>>;
|
||||||
|
|
||||||
template < typename InputIterator, typename Allocator
|
template < typename InputIterator, typename AllocatorOrCompare>
|
||||||
, typename = dtl::require_allocator_t<Allocator>>
|
flat_multimap(ordered_range_t, InputIterator, InputIterator, AllocatorOrCompare const&) ->
|
||||||
flat_multimap(ordered_range_t, InputIterator, InputIterator, Allocator const&) ->
|
|
||||||
flat_multimap< it_based_non_const_first_type_t<InputIterator>
|
flat_multimap< it_based_non_const_first_type_t<InputIterator>
|
||||||
, it_based_second_type_t<InputIterator>
|
, it_based_second_type_t<InputIterator>
|
||||||
, std::less<it_based_non_const_first_type_t<InputIterator>>
|
, std::conditional_t< // Compare
|
||||||
, Allocator>;
|
dtl::is_allocator<AllocatorOrCompare>::value
|
||||||
|
, std::less<it_based_non_const_first_type_t<InputIterator>>
|
||||||
template < typename InputIterator, typename Compare
|
, AllocatorOrCompare
|
||||||
, typename = dtl::require_nonallocator_t<Compare>>
|
>
|
||||||
flat_multimap(ordered_range_t, InputIterator, InputIterator, Compare const&) ->
|
, std::conditional_t< // Allocator
|
||||||
flat_multimap< it_based_non_const_first_type_t<InputIterator>
|
dtl::is_allocator<AllocatorOrCompare>::value
|
||||||
, it_based_second_type_t<InputIterator>
|
, AllocatorOrCompare
|
||||||
, Compare>;
|
, new_allocator<std::pair<it_based_non_const_first_type_t<InputIterator>, it_based_second_type_t<InputIterator>>>
|
||||||
|
>
|
||||||
|
>;
|
||||||
|
|
||||||
template < typename InputIterator, typename Compare, typename Allocator
|
template < typename InputIterator, typename Compare, typename Allocator
|
||||||
, typename = dtl::require_nonallocator_t<Compare>
|
, typename = dtl::require_nonallocator_t<Compare>
|
||||||
|
Reference in New Issue
Block a user