@@ -31,6 +31,21 @@ namespace std {
3131 template<class Key, class Compare, class KeyContainer, class Predicate>
3232 typename flat_set<Key, Compare, KeyContainer>::size_type
3333 erase_if(flat_set<Key, Compare, KeyContainer>& c, Predicate pred);
34+
35+ // [flat.multiset], class template flat_multiset
36+ template<class Key, class Compare = less<Key>, class KeyContainer = vector<Key>>
37+ class flat_multiset;
38+
39+ struct sorted_equivalent_t { explicit sorted_equivalent_t() = default; };
40+ inline constexpr sorted_equivalent_t sorted_equivalent{};
41+
42+ template<class Key, class Compare, class KeyContainer, class Allocator>
43+ struct uses_allocator<flat_multiset<Key, Compare, KeyContainer>, Allocator>;
44+
45+ // [flat.multiset.erasure], erasure for flat_multiset
46+ template<class Key, class Compare, class KeyContainer, class Predicate>
47+ typename flat_multiset<Key, Compare, KeyContainer>::size_type
48+ erase_if(flat_multiset<Key, Compare, KeyContainer>& c, Predicate pred);
3449}
3550*/
3651
@@ -41,7 +56,9 @@ namespace std {
4156
4257# if _LIBCPP_STD_VER >= 23
4358# include < __flat_map/sorted_unique.h>
59+ # include < __flat_map/sorted_equivalent.h>
4460# include < __flat_set/flat_set.h>
61+ # include < __flat_set/flat_multiset.h>
4562# endif
4663
4764// for feature-test macros
0 commit comments