@@ -600,10 +600,7 @@ erase_if(multimap<Key, T, Compare, Allocator>& c, Predicate pred); // C++20
600
600
# include < __ranges/from_range.h>
601
601
# include < __tree>
602
602
# include < __type_traits/container_traits.h>
603
- # include < __type_traits/desugars_to.h>
604
603
# include < __type_traits/is_allocator.h>
605
- # include < __type_traits/is_convertible.h>
606
- # include < __type_traits/make_transparent.h>
607
604
# include < __type_traits/remove_const.h>
608
605
# include < __type_traits/type_identity.h>
609
606
# include < __utility/forward.h>
@@ -669,11 +666,6 @@ public:
669
666
# endif
670
667
};
671
668
672
- template <class _Key , class _MapValueT , class _Compare >
673
- struct __make_transparent <__map_value_compare<_Key, _MapValueT, _Compare> > {
674
- using type _LIBCPP_NODEBUG = __map_value_compare<_Key, _MapValueT, __make_transparent_t <_Compare> >;
675
- };
676
-
677
669
# if _LIBCPP_STD_VER >= 14
678
670
template <class _MapValueT , class _Key , class _Compare >
679
671
struct __lazy_synth_three_way_comparator <__map_value_compare<_Key, _MapValueT, _Compare>, _MapValueT, _MapValueT> {
@@ -1056,24 +1048,6 @@ public:
1056
1048
_LIBCPP_HIDE_FROM_ABI mapped_type& operator [](key_type&& __k);
1057
1049
# endif
1058
1050
1059
- template <class _Arg ,
1060
- __enable_if_t <__is_transparently_comparable_v<_Compare, key_type, __remove_cvref_t <_Arg> >, int > = 0 >
1061
- _LIBCPP_HIDE_FROM_ABI mapped_type& at (_Arg&& __arg) {
1062
- auto [_, __child] = __tree_.__find_equal (__arg);
1063
- if (__child == nullptr )
1064
- std::__throw_out_of_range (" map::at: key not found" );
1065
- return static_cast <__node_pointer>(__child)->__get_value ().second ;
1066
- }
1067
-
1068
- template <class _Arg ,
1069
- __enable_if_t <__is_transparently_comparable_v<_Compare, key_type, __remove_cvref_t <_Arg> >, int > = 0 >
1070
- _LIBCPP_HIDE_FROM_ABI const mapped_type& at (_Arg&& __arg) const {
1071
- auto [_, __child] = __tree_.__find_equal (__arg);
1072
- if (__child == nullptr )
1073
- std::__throw_out_of_range (" map::at: key not found" );
1074
- return static_cast <__node_pointer>(__child)->__get_value ().second ;
1075
- }
1076
-
1077
1051
_LIBCPP_HIDE_FROM_ABI mapped_type& at (const key_type& __k);
1078
1052
_LIBCPP_HIDE_FROM_ABI const mapped_type& at (const key_type& __k) const ;
1079
1053
@@ -1268,15 +1242,11 @@ public:
1268
1242
_LIBCPP_HIDE_FROM_ABI iterator find (const key_type& __k) { return __tree_.find (__k); }
1269
1243
_LIBCPP_HIDE_FROM_ABI const_iterator find (const key_type& __k) const { return __tree_.find (__k); }
1270
1244
# if _LIBCPP_STD_VER >= 14
1271
- template <typename _K2,
1272
- enable_if_t <__is_transparent_v<_Compare, _K2> || __is_transparently_comparable_v<_Compare, key_type, _K2>,
1273
- int > = 0 >
1245
+ template <typename _K2, enable_if_t <__is_transparent_v<_Compare, _K2>, int > = 0 >
1274
1246
_LIBCPP_HIDE_FROM_ABI iterator find (const _K2& __k) {
1275
1247
return __tree_.find (__k);
1276
1248
}
1277
- template <typename _K2,
1278
- enable_if_t <__is_transparent_v<_Compare, _K2> || __is_transparently_comparable_v<_Compare, key_type, _K2>,
1279
- int > = 0 >
1249
+ template <typename _K2, enable_if_t <__is_transparent_v<_Compare, _K2>, int > = 0 >
1280
1250
_LIBCPP_HIDE_FROM_ABI const_iterator find (const _K2& __k) const {
1281
1251
return __tree_.find (__k);
1282
1252
}
@@ -1292,9 +1262,7 @@ public:
1292
1262
1293
1263
# if _LIBCPP_STD_VER >= 20
1294
1264
_LIBCPP_HIDE_FROM_ABI bool contains (const key_type& __k) const { return find (__k) != end (); }
1295
- template <typename _K2,
1296
- enable_if_t <__is_transparent_v<_Compare, _K2> || __is_transparently_comparable_v<_Compare, key_type, _K2>,
1297
- int > = 0 >
1265
+ template <typename _K2, enable_if_t <__is_transparent_v<_Compare, _K2>, int > = 0 >
1298
1266
_LIBCPP_HIDE_FROM_ABI bool contains (const _K2& __k) const {
1299
1267
return find (__k) != end ();
1300
1268
}
@@ -1303,16 +1271,12 @@ public:
1303
1271
_LIBCPP_HIDE_FROM_ABI iterator lower_bound (const key_type& __k) { return __tree_.lower_bound (__k); }
1304
1272
_LIBCPP_HIDE_FROM_ABI const_iterator lower_bound (const key_type& __k) const { return __tree_.lower_bound (__k); }
1305
1273
# if _LIBCPP_STD_VER >= 14
1306
- template <typename _K2,
1307
- enable_if_t <__is_transparent_v<_Compare, _K2> || __is_transparently_comparable_v<_Compare, key_type, _K2>,
1308
- int > = 0 >
1274
+ template <typename _K2, enable_if_t <__is_transparent_v<_Compare, _K2>, int > = 0 >
1309
1275
_LIBCPP_HIDE_FROM_ABI iterator lower_bound (const _K2& __k) {
1310
1276
return __tree_.lower_bound (__k);
1311
1277
}
1312
1278
1313
- template <typename _K2,
1314
- enable_if_t <__is_transparent_v<_Compare, _K2> || __is_transparently_comparable_v<_Compare, key_type, _K2>,
1315
- int > = 0 >
1279
+ template <typename _K2, enable_if_t <__is_transparent_v<_Compare, _K2>, int > = 0 >
1316
1280
_LIBCPP_HIDE_FROM_ABI const_iterator lower_bound (const _K2& __k) const {
1317
1281
return __tree_.lower_bound (__k);
1318
1282
}
@@ -1321,15 +1285,11 @@ public:
1321
1285
_LIBCPP_HIDE_FROM_ABI iterator upper_bound (const key_type& __k) { return __tree_.upper_bound (__k); }
1322
1286
_LIBCPP_HIDE_FROM_ABI const_iterator upper_bound (const key_type& __k) const { return __tree_.upper_bound (__k); }
1323
1287
# if _LIBCPP_STD_VER >= 14
1324
- template <typename _K2,
1325
- enable_if_t <__is_transparent_v<_Compare, _K2> || __is_transparently_comparable_v<_Compare, key_type, _K2>,
1326
- int > = 0 >
1288
+ template <typename _K2, enable_if_t <__is_transparent_v<_Compare, _K2>, int > = 0 >
1327
1289
_LIBCPP_HIDE_FROM_ABI iterator upper_bound (const _K2& __k) {
1328
1290
return __tree_.upper_bound (__k);
1329
1291
}
1330
- template <typename _K2,
1331
- enable_if_t <__is_transparent_v<_Compare, _K2> || __is_transparently_comparable_v<_Compare, key_type, _K2>,
1332
- int > = 0 >
1292
+ template <typename _K2, enable_if_t <__is_transparent_v<_Compare, _K2>, int > = 0 >
1333
1293
_LIBCPP_HIDE_FROM_ABI const_iterator upper_bound (const _K2& __k) const {
1334
1294
return __tree_.upper_bound (__k);
1335
1295
}
0 commit comments