@@ -108,8 +108,8 @@ class flat_multiset {
108
108
109
109
public:
110
110
// [flat.multiset.cons], constructors
111
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 flat_multiset () noexcept (is_nothrow_default_constructible_v<_KeyContainer> &&
112
- is_nothrow_default_constructible_v<_Compare>)
111
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 flat_multiset () noexcept (
112
+ is_nothrow_default_constructible_v<_KeyContainer> && is_nothrow_default_constructible_v<_Compare>)
113
113
: __keys_(), __compare_() {}
114
114
115
115
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 flat_multiset (const flat_multiset&) = default;
@@ -134,9 +134,11 @@ class flat_multiset {
134
134
# endif // _LIBCPP_HAS_EXCEPTIONS
135
135
}
136
136
137
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 explicit flat_multiset (const key_compare& __comp) : __keys_ (), __compare_ (__comp) {}
137
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 explicit flat_multiset (const key_compare& __comp)
138
+ : __keys_ (), __compare_ (__comp) {}
138
139
139
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 explicit flat_multiset (container_type __keys, const key_compare& __comp = key_compare ())
140
+ _LIBCPP_HIDE_FROM_ABI
141
+ _LIBCPP_CONSTEXPR_SINCE_CXX26 explicit flat_multiset (container_type __keys, const key_compare& __comp = key_compare ())
140
142
: __keys_ (std::move (__keys)), __compare_ (__comp) {
141
143
ranges::sort (__keys_, __compare_);
142
144
}
@@ -168,11 +170,14 @@ class flat_multiset {
168
170
: flat_multiset (__fr, std::forward<_Range>(__rg), key_compare ()) {}
169
171
170
172
template <_ContainerCompatibleRange<value_type> _Range>
171
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 flat_multiset (from_range_t , _Range&& __rg, const key_compare& __comp) : flat_multiset (__comp) {
173
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
174
+ flat_multiset (from_range_t , _Range&& __rg, const key_compare& __comp)
175
+ : flat_multiset (__comp) {
172
176
insert_range (std::forward<_Range>(__rg));
173
177
}
174
178
175
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 flat_multiset (initializer_list<value_type> __il, const key_compare& __comp = key_compare ())
179
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
180
+ flat_multiset (initializer_list<value_type> __il, const key_compare& __comp = key_compare ())
176
181
: flat_multiset (__il.begin (), __il.end (), __comp) {}
177
182
178
183
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
@@ -186,12 +191,14 @@ class flat_multiset {
186
191
187
192
template <class _Allocator >
188
193
requires uses_allocator<container_type, _Allocator>::value
189
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 flat_multiset (const key_compare& __comp, const _Allocator& __alloc)
194
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
195
+ flat_multiset (const key_compare& __comp, const _Allocator& __alloc)
190
196
: __keys_ (std::make_obj_using_allocator<container_type>(__alloc)), __compare_ (__comp) {}
191
197
192
198
template <class _Allocator >
193
199
requires uses_allocator<container_type, _Allocator>::value
194
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 flat_multiset (const container_type& __keys, const _Allocator& __alloc)
200
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
201
+ flat_multiset (const container_type& __keys, const _Allocator& __alloc)
195
202
: __keys_ (std::make_obj_using_allocator<container_type>(__alloc, __keys)), __compare_ () {
196
203
ranges::sort (__keys_, __compare_);
197
204
}
@@ -206,7 +213,8 @@ class flat_multiset {
206
213
207
214
template <class _Allocator >
208
215
requires uses_allocator<container_type, _Allocator>::value
209
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 flat_multiset (sorted_equivalent_t , const container_type& __keys, const _Allocator& __alloc)
216
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
217
+ flat_multiset (sorted_equivalent_t , const container_type& __keys, const _Allocator& __alloc)
210
218
: __keys_ (std::make_obj_using_allocator<container_type>(__alloc, __keys)), __compare_ () {
211
219
_LIBCPP_ASSERT_SEMANTIC_REQUIREMENT (ranges::is_sorted (__keys_, __compare_), " Key container is not sorted" );
212
220
}
@@ -221,7 +229,8 @@ class flat_multiset {
221
229
222
230
template <class _Allocator >
223
231
requires uses_allocator<container_type, _Allocator>::value
224
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 flat_multiset (const flat_multiset& __other, const _Allocator& __alloc)
232
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
233
+ flat_multiset (const flat_multiset& __other, const _Allocator& __alloc)
225
234
: __keys_ (std::make_obj_using_allocator<container_type>(__alloc, __other.__keys_ )),
226
235
__compare_ (__other.__compare_ ) {}
227
236
@@ -243,7 +252,8 @@ class flat_multiset {
243
252
244
253
template <class _InputIterator , class _Allocator >
245
254
requires (__has_input_iterator_category<_InputIterator>::value && uses_allocator<container_type, _Allocator>::value)
246
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 flat_multiset (_InputIterator __first, _InputIterator __last, const _Allocator& __alloc)
255
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
256
+ flat_multiset (_InputIterator __first, _InputIterator __last, const _Allocator& __alloc)
247
257
: __keys_ (std::make_obj_using_allocator<container_type>(__alloc)), __compare_ () {
248
258
insert (__first, __last);
249
259
}
@@ -266,33 +276,36 @@ class flat_multiset {
266
276
267
277
template <class _InputIterator , class _Allocator >
268
278
requires (__has_input_iterator_category<_InputIterator>::value && uses_allocator<container_type, _Allocator>::value)
269
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
270
- flat_multiset ( sorted_equivalent_t ,
271
- _InputIterator __first,
272
- _InputIterator __last,
273
- const key_compare& __comp,
274
- const _Allocator& __alloc)
279
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 flat_multiset (
280
+ sorted_equivalent_t ,
281
+ _InputIterator __first,
282
+ _InputIterator __last,
283
+ const key_compare& __comp,
284
+ const _Allocator& __alloc)
275
285
: __keys_ (std::make_obj_using_allocator<container_type>(__alloc, __first, __last)), __compare_ (__comp) {
276
286
_LIBCPP_ASSERT_SEMANTIC_REQUIREMENT (ranges::is_sorted (__keys_, __compare_), " Key container is not sorted" );
277
287
}
278
288
279
289
template <_ContainerCompatibleRange<value_type> _Range, class _Allocator >
280
290
requires uses_allocator<container_type, _Allocator>::value
281
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 flat_multiset (from_range_t , _Range&& __rg, const _Allocator& __alloc)
291
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
292
+ flat_multiset (from_range_t , _Range&& __rg, const _Allocator& __alloc)
282
293
: __keys_ (std::make_obj_using_allocator<container_type>(__alloc)), __compare_ () {
283
294
insert_range (std::forward<_Range>(__rg));
284
295
}
285
296
286
297
template <_ContainerCompatibleRange<value_type> _Range, class _Allocator >
287
298
requires uses_allocator<container_type, _Allocator>::value
288
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 flat_multiset (from_range_t , _Range&& __rg, const key_compare& __comp, const _Allocator& __alloc)
299
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
300
+ flat_multiset (from_range_t , _Range&& __rg, const key_compare& __comp, const _Allocator& __alloc)
289
301
: __keys_ (std::make_obj_using_allocator<container_type>(__alloc)), __compare_ (__comp) {
290
302
insert_range (std::forward<_Range>(__rg));
291
303
}
292
304
293
305
template <class _Allocator >
294
306
requires uses_allocator<container_type, _Allocator>::value
295
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 flat_multiset (initializer_list<value_type> __il, const _Allocator& __alloc)
307
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
308
+ flat_multiset (initializer_list<value_type> __il, const _Allocator& __alloc)
296
309
: flat_multiset (__il.begin (), __il.end (), __alloc) {}
297
310
298
311
template <class _Allocator >
@@ -303,7 +316,8 @@ class flat_multiset {
303
316
304
317
template <class _Allocator >
305
318
requires uses_allocator<container_type, _Allocator>::value
306
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 flat_multiset (sorted_equivalent_t , initializer_list<value_type> __il, const _Allocator& __alloc)
319
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
320
+ flat_multiset (sorted_equivalent_t , initializer_list<value_type> __il, const _Allocator& __alloc)
307
321
: flat_multiset (sorted_equivalent, __il.begin (), __il.end (), __alloc) {}
308
322
309
323
template <class _Allocator >
@@ -334,23 +348,45 @@ class flat_multiset {
334
348
}
335
349
336
350
// iterators
337
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator begin () noexcept { return iterator (std::as_const (__keys_).begin ()); }
338
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_iterator begin () const noexcept { return const_iterator (__keys_.begin ()); }
339
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator end () noexcept { return iterator (std::as_const (__keys_).end ()); }
340
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_iterator end () const noexcept { return const_iterator (__keys_.end ()); }
351
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator begin () noexcept {
352
+ return iterator (std::as_const (__keys_).begin ());
353
+ }
354
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_iterator begin () const noexcept {
355
+ return const_iterator (__keys_.begin ());
356
+ }
357
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator end () noexcept {
358
+ return iterator (std::as_const (__keys_).end ());
359
+ }
360
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_iterator end () const noexcept {
361
+ return const_iterator (__keys_.end ());
362
+ }
341
363
342
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 reverse_iterator rbegin () noexcept { return reverse_iterator (end ()); }
343
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_reverse_iterator rbegin () const noexcept { return const_reverse_iterator (end ()); }
344
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 reverse_iterator rend () noexcept { return reverse_iterator (begin ()); }
345
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_reverse_iterator rend () const noexcept { return const_reverse_iterator (begin ()); }
364
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 reverse_iterator rbegin () noexcept {
365
+ return reverse_iterator (end ());
366
+ }
367
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_reverse_iterator rbegin () const noexcept {
368
+ return const_reverse_iterator (end ());
369
+ }
370
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 reverse_iterator rend () noexcept {
371
+ return reverse_iterator (begin ());
372
+ }
373
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_reverse_iterator rend () const noexcept {
374
+ return const_reverse_iterator (begin ());
375
+ }
346
376
347
377
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_iterator cbegin () const noexcept { return begin (); }
348
378
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_iterator cend () const noexcept { return end (); }
349
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_reverse_iterator crbegin () const noexcept { return const_reverse_iterator (end ()); }
350
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_reverse_iterator crend () const noexcept { return const_reverse_iterator (begin ()); }
379
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_reverse_iterator crbegin () const noexcept {
380
+ return const_reverse_iterator (end ());
381
+ }
382
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_reverse_iterator crend () const noexcept {
383
+ return const_reverse_iterator (begin ());
384
+ }
351
385
352
386
// capacity
353
- [[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 bool empty () const noexcept { return __keys_.empty (); }
387
+ [[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 bool empty () const noexcept {
388
+ return __keys_.empty ();
389
+ }
354
390
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 size_type size () const noexcept { return __keys_.size (); }
355
391
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 size_type max_size () const noexcept { return __keys_.max_size (); }
356
392
@@ -377,7 +413,9 @@ class flat_multiset {
377
413
378
414
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator insert (const value_type& __x) { return emplace (__x); }
379
415
380
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator insert (value_type&& __x) { return emplace (std::move (__x)); }
416
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator insert (value_type&& __x) {
417
+ return emplace (std::move (__x));
418
+ }
381
419
382
420
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator insert (const_iterator __hint, const value_type& __x) {
383
421
return emplace_hint (__hint, __x);
@@ -398,7 +436,8 @@ class flat_multiset {
398
436
399
437
template <class _InputIterator >
400
438
requires __has_input_iterator_category<_InputIterator>::value
401
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void insert (sorted_equivalent_t , _InputIterator __first, _InputIterator __last) {
439
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void
440
+ insert (sorted_equivalent_t , _InputIterator __first, _InputIterator __last) {
402
441
if constexpr (sized_sentinel_for<_InputIterator, _InputIterator>) {
403
442
__reserve (__last - __first);
404
443
}
@@ -415,9 +454,12 @@ class flat_multiset {
415
454
__append_sort_merge</* WasSorted = */ false >(std::forward<_Range>(__range));
416
455
}
417
456
418
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void insert (initializer_list<value_type> __il) { insert (__il.begin (), __il.end ()); }
457
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void insert (initializer_list<value_type> __il) {
458
+ insert (__il.begin (), __il.end ());
459
+ }
419
460
420
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void insert (sorted_equivalent_t , initializer_list<value_type> __il) {
461
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void
462
+ insert (sorted_equivalent_t , initializer_list<value_type> __il) {
421
463
insert (sorted_equivalent, __il.begin (), __il.end ());
422
464
}
423
465
@@ -484,9 +526,13 @@ class flat_multiset {
484
526
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 value_compare value_comp () const { return __compare_; }
485
527
486
528
// map operations
487
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator find (const key_type& __x) { return __find_impl (*this , __x); }
529
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator find (const key_type& __x) {
530
+ return __find_impl (*this , __x);
531
+ }
488
532
489
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_iterator find (const key_type& __x) const { return __find_impl (*this , __x); }
533
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_iterator find (const key_type& __x) const {
534
+ return __find_impl (*this , __x);
535
+ }
490
536
491
537
template <class _Kp >
492
538
requires __is_transparent_v<_Compare>
@@ -512,7 +558,9 @@ class flat_multiset {
512
558
return __last - __first;
513
559
}
514
560
515
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 bool contains (const key_type& __x) const { return find (__x) != end (); }
561
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 bool contains (const key_type& __x) const {
562
+ return find (__x) != end ();
563
+ }
516
564
517
565
template <class _Kp >
518
566
requires __is_transparent_v<_Compare>
@@ -568,7 +616,8 @@ class flat_multiset {
568
616
return __equal_range_impl (*this , __x);
569
617
}
570
618
571
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 pair<const_iterator, const_iterator> equal_range (const key_type& __x) const {
619
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 pair<const_iterator, const_iterator>
620
+ equal_range (const key_type& __x) const {
572
621
return __equal_range_impl (*this , __x);
573
622
}
574
623
@@ -579,20 +628,26 @@ class flat_multiset {
579
628
}
580
629
template <class _Kp >
581
630
requires __is_transparent_v<_Compare>
582
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 pair<const_iterator, const_iterator> equal_range (const _Kp& __x) const {
631
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 pair<const_iterator, const_iterator>
632
+ equal_range (const _Kp& __x) const {
583
633
return __equal_range_impl (*this , __x);
584
634
}
585
635
586
- friend _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 bool operator ==(const flat_multiset& __x, const flat_multiset& __y) {
636
+ friend _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 bool
637
+ operator ==(const flat_multiset& __x, const flat_multiset& __y) {
587
638
return ranges::equal (__x, __y);
588
639
}
589
640
590
- friend _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 auto operator <=>(const flat_multiset& __x, const flat_multiset& __y) {
641
+ friend _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 auto
642
+ operator <=>(const flat_multiset& __x, const flat_multiset& __y) {
591
643
return std::lexicographical_compare_three_way (
592
644
__x.begin (), __x.end (), __y.begin (), __y.end (), std::__synth_three_way);
593
645
}
594
646
595
- friend _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void swap (flat_multiset& __x, flat_multiset& __y) noexcept { __x.swap (__y); }
647
+ friend _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void
648
+ swap (flat_multiset& __x, flat_multiset& __y) noexcept {
649
+ __x.swap (__y);
650
+ }
596
651
597
652
private:
598
653
template <bool _WasSorted, class ... _Args>
@@ -673,15 +728,16 @@ class flat_multiset {
673
728
}
674
729
675
730
template <class _Key2 , class _Compare2 , class _KeyContainer2 , class _Predicate >
676
- friend typename flat_multiset<_Key2, _Compare2, _KeyContainer2>::size_type
677
- _LIBCPP_CONSTEXPR_SINCE_CXX26 erase_if (flat_multiset<_Key2, _Compare2, _KeyContainer2>&, _Predicate);
731
+ friend typename flat_multiset<_Key2, _Compare2, _KeyContainer2>::size_type _LIBCPP_CONSTEXPR_SINCE_CXX26
732
+ erase_if (flat_multiset<_Key2, _Compare2, _KeyContainer2>&, _Predicate);
678
733
679
734
_KeyContainer __keys_;
680
735
_LIBCPP_NO_UNIQUE_ADDRESS key_compare __compare_;
681
736
682
737
struct __key_equiv {
683
738
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 __key_equiv (key_compare __c) : __comp_(__c) {}
684
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 bool operator ()(const_reference __x, const_reference __y) const {
739
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 bool
740
+ operator ()(const_reference __x, const_reference __y) const {
685
741
return !__comp_ (std::get<0 >(__x), std::get<0 >(__y)) && !__comp_ (std::get<0 >(__y), std::get<0 >(__x));
686
742
}
687
743
key_compare __comp_;
0 commit comments