acme
Foundational cross-platform layer of the ca2 framework
Toggle main menu visibility
Loading...
Searching...
No Matches
comparable_eq_range.h
1
// From comparable_range by camilo on 2022-12-07 22:49 <3ThomasBorregaardSorensen!!
2
#pragma once
3
4
5
6
//template < typename RANGE_TYPE >
7
//class comparable_eq_range :
8
// public RANGE_TYPE
9
//{
10
//public:
11
//
12
//
13
// using BASE_RANGE = RANGE_TYPE;
14
//
15
// using THIS_RANGE = ::comparable_eq_range < BASE_RANGE >;
16
//
17
//
18
// using this_iterator = typename BASE_RANGE::this_iterator;
19
// using iterator = typename BASE_RANGE::iterator;
20
// using const_iterator = typename BASE_RANGE::const_iterator;
21
//
22
//
23
// using THIS_RAW_RANGE = typename BASE_RANGE::THIS_RAW_RANGE;
24
// using RAW_RANGE = typename BASE_RANGE::RAW_RANGE;
25
// using CONST_RAW_RANGE = typename BASE_RANGE::CONST_RAW_RANGE;
26
//
27
//
28
// using ITEM_POINTER = typename get_type_item_pointer < this_iterator >::type;
29
//
30
// using ITEM = dereference < ITEM_POINTER >;
31
//
32
//
33
// //using BASE_RANGE::BASE_RANGE;
34
//
35
//
36
// comparable_eq_range(no_initialize_t) : BASE_RANGE(no_initialize_t{}) {}
37
// comparable_eq_range(nullptr_t) : BASE_RANGE(nullptr) {}
38
// comparable_eq_range() {}
39
// template<typed_range<iterator> RANGE>
40
// comparable_eq_range(const RANGE &range) : BASE_RANGE(range) {}
41
// template<typed_range<const_iterator> RANGE>
42
// comparable_eq_range(const RANGE &range) : BASE_RANGE(range) {}
43
// template < prototype_integral INTEGRAL >
44
// comparable_eq_range(const_iterator begin, INTEGRAL count) : BASE_RANGE(begin, count) {}
45
// comparable_eq_range(const_iterator begin, const_iterator end) : BASE_RANGE(begin, end) {}
46
// comparable_eq_range(const_iterator begin) : BASE_RANGE(begin, find_first_null_character(begin)) {}
47
//
48
//
49
// //template < prototype_range RANGE >
50
// //comparable_eq_range & operator = (const RANGE & range) { BASE_RANGE::operator=(range); return *this; }
51
// comparable_eq_range & operator = (const comparable_eq_range & range) { BASE_RANGE::operator=(range); return *this; }
52
// comparable_eq_range & operator = (comparable_eq_range && range) { BASE_RANGE::operator=(::transfer(range)); return *this; }
53
//
54
// using BASE_RANGE::_equals;
55
//
56
// constexpr bool _equals(const CONST_RAW_RANGE & range) const
57
// {
58
//
59
// return this->_equals(range, ::comparison::comparison < ITEM >());
60
//
61
// }
62
//
63
//
64
// using BASE_RANGE::equals;
65
//
66
// constexpr bool equals(const CONST_RAW_RANGE & range) const
67
// {
68
//
69
// return this->equals(range, ::comparison::comparison < ITEM >());
70
//
71
// }
72
//
73
//
74
// using BASE_RANGE::_equals_start;
75
//
76
// constexpr bool _equals_start(const CONST_RAW_RANGE & range, memsize start) const
77
// {
78
//
79
// return this->_equals_start(range, start, ::comparison::comparison < ITEM >());
80
//
81
// }
82
//
83
//
84
// using BASE_RANGE::equals_start;
85
//
86
// constexpr bool equals_start(const CONST_RAW_RANGE & range, memsize start) const
87
// {
88
//
89
// return this->equals_start(range, start, ::comparison::comparison < ITEM >());
90
//
91
// }
92
//
93
//
94
// using BASE_RANGE::_equals_start_count;
95
//
96
// constexpr bool _equals_start_count(const CONST_RAW_RANGE & range, memsize start, memsize count) const
97
// {
98
//
99
// return this->_equals_start_count(range, start, count, ::comparison::comparison < ITEM >());
100
//
101
// }
102
//
103
//
104
// using BASE_RANGE::equals_start_count;
105
//
106
// constexpr bool equals_start_count(const CONST_RAW_RANGE & range, memsize start, memsize count) const
107
// {
108
//
109
// return this->equals_start_count(range, start, count, ::comparison::comparison < ITEM >());
110
//
111
// }
112
// using BASE_RANGE::_find;
113
//
114
// constexpr const_iterator _find(const CONST_RAW_RANGE & range) const
115
// {
116
//
117
// return this->_find(range, ::comparison::comparison < ITEM >());
118
//
119
// }
120
//
121
//
122
// using BASE_RANGE::find;
123
//
124
// constexpr const_iterator find(const CONST_RAW_RANGE & range) const
125
// {
126
//
127
// return this->find(range, ::comparison::comparison < ITEM >());
128
//
129
// }
130
//
131
//
132
// using BASE_RANGE::_find_start;
133
//
134
// constexpr const_iterator _find_start(const CONST_RAW_RANGE & range, memsize start) const
135
// {
136
//
137
// return this->_find_start(range, start, ::comparison::comparison < ITEM >());
138
//
139
// }
140
//
141
//
142
// using BASE_RANGE::find_start;
143
//
144
// constexpr const_iterator find_start(const CONST_RAW_RANGE & range, memsize start) const
145
// {
146
//
147
// return this->find_start(range, start, ::comparison::comparison < ITEM >());
148
//
149
// }
150
//
151
//
152
// using BASE_RANGE::_find_start_count;
153
//
154
// constexpr const_iterator _find_start_count(const CONST_RAW_RANGE & range, memsize start, memsize count) const
155
// {
156
//
157
// return this->_find_start_count(range, start, count, ::comparison::comparison < ITEM >());
158
//
159
// }
160
//
161
//
162
// using BASE_RANGE::find_start_count;
163
//
164
// constexpr const_iterator find_start_count(const CONST_RAW_RANGE & range, memsize start, memsize count) const
165
// {
166
//
167
// return this->find_start_count(range, start, count, ::comparison::comparison < ITEM >());
168
//
169
// }
170
//
171
//
172
// using BASE_RANGE::_rear_find;
173
//
174
// constexpr const_iterator _rear_find(const CONST_RAW_RANGE & range) const
175
// {
176
//
177
// return this->_rear_find(range, ::comparison::comparison < ITEM >());
178
//
179
// }
180
//
181
//
182
// using BASE_RANGE::rear_find;
183
//
184
// constexpr const_iterator rear_find(const CONST_RAW_RANGE & range) const
185
// {
186
//
187
// return this->rear_find(range, ::comparison::comparison < ITEM >());
188
//
189
// }
190
//
191
//
192
// using BASE_RANGE::_rear_find_start;
193
//
194
// constexpr const_iterator _rear_find_start(const CONST_RAW_RANGE & range, memsize start) const
195
// {
196
//
197
// return this->_rear_find_start(range, start, ::comparison::comparison < ITEM >());
198
//
199
// }
200
//
201
//
202
// using BASE_RANGE::rear_find_start;
203
//
204
// constexpr const_iterator rear_find_start(const CONST_RAW_RANGE & range, memsize start) const
205
// {
206
//
207
// return this->rear_find_start(range, start, ::comparison::comparison < ITEM >());
208
//
209
// }
210
//
211
//
212
// using BASE_RANGE::_rear_find_start_count;
213
//
214
// constexpr const_iterator _rear_find_start_count(const CONST_RAW_RANGE & range, memsize start, memsize count) const
215
// {
216
//
217
// return this->_rear_find_start_count(range, start, count, ::comparison::comparison < ITEM >());
218
//
219
// }
220
//
221
//
222
// using BASE_RANGE::rear_find_start_count;
223
//
224
// constexpr const_iterator rear_find_start_count(const CONST_RAW_RANGE & range, memsize start, memsize count) const
225
// {
226
//
227
// return this->rear_find_start_count(range, start, count, ::comparison::comparison < ITEM >());
228
//
229
// }
230
//
231
//
232
// using BASE_RANGE::_scan;
233
//
234
// constexpr const_iterator _scan(const CONST_RAW_RANGE & range) const
235
// {
236
//
237
// return this->_scan(range, ::comparison::comparison < ITEM >());
238
//
239
// }
240
//
241
//
242
// using BASE_RANGE::scan;
243
//
244
// constexpr const_iterator scan(const CONST_RAW_RANGE & range) const
245
// {
246
//
247
// return this->scan(range, ::comparison::comparison < ITEM >());
248
//
249
// }
250
//
251
//
252
// using BASE_RANGE::_scan_start;
253
//
254
// constexpr const_iterator _scan_start(const CONST_RAW_RANGE & range, memsize start) const
255
// {
256
//
257
// return this->_scan_start(range, start, ::comparison::comparison < ITEM >());
258
//
259
// }
260
//
261
//
262
// using BASE_RANGE::scan_start;
263
//
264
// constexpr const_iterator scan_start(const CONST_RAW_RANGE & range, memsize start) const
265
// {
266
//
267
// return this->scan_start(range, start, ::comparison::comparison < ITEM >());
268
//
269
// }
270
//
271
//
272
// using BASE_RANGE::_scan_start_count;
273
//
274
// constexpr const_iterator _scan_start_count(const CONST_RAW_RANGE & range, memsize start, memsize count) const
275
// {
276
//
277
// return this->_scan_start_count(range, start, count, ::comparison::comparison < ITEM >());
278
//
279
// }
280
//
281
//
282
// using BASE_RANGE::scan_start_count;
283
//
284
// constexpr const_iterator scan_start_count(const CONST_RAW_RANGE & range, memsize start, memsize count) const
285
// {
286
//
287
// return this->scan_start_count(range, start, count, ::comparison::comparison < ITEM >());
288
//
289
// }
290
//
291
//
292
//
293
// using BASE_RANGE::_span;
294
//
295
// constexpr const_iterator _span(const CONST_RAW_RANGE & range) const
296
// {
297
//
298
// return this->_span(range, ::comparison::comparison < ITEM >());
299
//
300
// }
301
//
302
//
303
// using BASE_RANGE::span;
304
//
305
// constexpr const_iterator span(const CONST_RAW_RANGE & range) const
306
// {
307
//
308
// return this->span(range, ::comparison::comparison < ITEM >());
309
//
310
// }
311
//
312
//
313
// using BASE_RANGE::_span_start;
314
//
315
// constexpr const_iterator _span_start(const CONST_RAW_RANGE & range, memsize start) const
316
// {
317
//
318
// return this->_span_start(range, start, ::comparison::comparison < ITEM >());
319
//
320
// }
321
//
322
//
323
// using BASE_RANGE::span_start;
324
//
325
// constexpr const_iterator span_start(const CONST_RAW_RANGE & range, memsize start) const
326
// {
327
//
328
// return this->span_start(range, start, ::comparison::comparison < ITEM >());
329
//
330
// }
331
//
332
//
333
// using BASE_RANGE::_span_start_count;
334
//
335
// constexpr const_iterator _span_start_count(const CONST_RAW_RANGE & range, memsize start, memsize count) const
336
// {
337
//
338
// return this->_span_start_count(range, start, count, ::comparison::comparison < ITEM >());
339
//
340
// }
341
//
342
//
343
// using BASE_RANGE::span_start_count;
344
//
345
// constexpr const_iterator span_start_count(const CONST_RAW_RANGE & range, memsize start, memsize count) const
346
// {
347
//
348
// return this->span_start_count(range, start, count, ::comparison::comparison < ITEM >());
349
//
350
// }
351
//
352
//
353
// using BASE_RANGE::_rear_span;
354
//
355
// constexpr const_iterator _rear_span(const CONST_RAW_RANGE & range) const noexcept
356
// {
357
//
358
// return this->_rear_span(range, ::comparison::comparison < ITEM >());
359
//
360
// }
361
//
362
//
363
// using BASE_RANGE::rear_span;
364
//
365
// constexpr const_iterator rear_span(const CONST_RAW_RANGE & range) const noexcept
366
// {
367
//
368
// return this->rear_span(range, ::comparison::comparison < ITEM >());
369
//
370
// }
371
//
372
//
373
// using BASE_RANGE::rear_span_start;
374
//
375
// constexpr const_iterator rear_span_start(const CONST_RAW_RANGE & range, memsize start) const
376
// {
377
//
378
// return this->rear_span_start(range, start, ::comparison::comparison < ITEM >());
379
//
380
// }
381
//
382
//
383
// using BASE_RANGE::_rear_span_start_count;
384
//
385
// constexpr const_iterator _rear_span_start_count(const CONST_RAW_RANGE & range, memsize start, memsize count) const
386
// {
387
//
388
// return this->_rear_span_start_count(range, start, count, ::comparison::comparison < ITEM >());
389
//
390
// }
391
//
392
//
393
// using BASE_RANGE::rear_span_start_count;
394
//
395
// constexpr const_iterator rear_span_start_count(const CONST_RAW_RANGE & range, memsize start, memsize count) const
396
// {
397
//
398
// return this->rear_span_start_count(range, start, count, ::comparison::comparison < ITEM >());
399
//
400
// }
401
//
402
// using BASE_RANGE::_skip;
403
//
404
// constexpr const_iterator _skip(const ITEM & item) const
405
// {
406
//
407
// return this->_skip(item, ::comparison::comparison < ITEM >());
408
//
409
// }
410
//
411
//
412
// using BASE_RANGE::skip;
413
//
414
// constexpr const_iterator skip(const ITEM & item) const
415
// {
416
//
417
// return this->skip(item, ::comparison::comparison < ITEM >());
418
//
419
// }
420
//
421
//
422
// using BASE_RANGE::_skip_start;
423
//
424
// constexpr const_iterator _skip_start(const ITEM & item, memsize start) const
425
// {
426
//
427
// return this->_skip_start(item, start, ::comparison::comparison < ITEM >());
428
//
429
// }
430
//
431
//
432
// using BASE_RANGE::skip_start;
433
//
434
// constexpr const_iterator skip_start(const ITEM & item, memsize start) const
435
// {
436
//
437
// return this->skip_start(item, start, ::comparison::comparison < ITEM >());
438
//
439
// }
440
//
441
//
442
// using BASE_RANGE::_skip_start_count;
443
//
444
// constexpr const_iterator _skip_start_count(const ITEM & item, memsize start, memsize count) const
445
// {
446
//
447
// return this->_skip_start_count(item, start, count, ::comparison::comparison < ITEM >());
448
//
449
// }
450
//
451
//
452
// using BASE_RANGE::skip_start_count;
453
//
454
// constexpr const_iterator skip_start_count(const ITEM & item, memsize start, memsize count) const
455
// {
456
//
457
// return this->skip_start_count(item, start, count, ::comparison::comparison < ITEM >());
458
//
459
// }
460
// using BASE_RANGE::_rear_find_item;
461
//
462
// constexpr const_iterator _rear_find_item(const ITEM & item) const
463
// {
464
//
465
// return this->_rear_find_item(item, ::comparison::comparison < ITEM >());
466
//
467
// }
468
//
469
//
470
// using BASE_RANGE::rear_find_item;
471
//
472
// constexpr const_iterator rear_find_item(const ITEM & item) const
473
// {
474
//
475
// return this->rear_find_item(item, ::comparison::comparison < ITEM >());
476
//
477
// }
478
//
479
//
480
// using BASE_RANGE::_rear_find_item_start;
481
//
482
// constexpr const_iterator _rear_find_item_start(const ITEM & item, memsize start) const
483
// {
484
//
485
// return this->_rear_find_item_start(item, start, ::comparison::comparison < ITEM >());
486
//
487
// }
488
//
489
//
490
// using BASE_RANGE::rear_find_item_start;
491
//
492
// constexpr const_iterator rear_find_item_start(const ITEM & item, memsize start) const
493
// {
494
//
495
// return this->rear_find_item_start(item, start, ::comparison::comparison < ITEM >());
496
//
497
// }
498
//
499
//
500
// using BASE_RANGE::_rear_find_item_start_count;
501
//
502
// constexpr const_iterator _rear_find_item_start_count(const ITEM & item, memsize start, memsize count) const
503
// {
504
//
505
// return this->_rear_find_item_start_count(item, start, count, ::comparison::comparison < ITEM >());
506
//
507
// }
508
//
509
//
510
// using BASE_RANGE::rear_find_item_start_count;
511
//
512
// constexpr const_iterator rear_find_item_start_count(const ITEM & item, memsize start, memsize count) const
513
// {
514
//
515
// return this->rear_find_item_start_count(item, start, count, ::comparison::comparison < ITEM >());
516
//
517
// }
518
//
519
//
520
//
521
// using BASE_RANGE::_rear_scan;
522
//
523
// constexpr const_iterator _rear_scan(const CONST_RAW_RANGE & range) const noexcept
524
// {
525
//
526
// return this->_rear_scan(range, ::comparison::comparison < ITEM >());
527
//
528
// }
529
//
530
//
531
// using BASE_RANGE::rear_scan;
532
//
533
// constexpr const_iterator rear_scan(const CONST_RAW_RANGE & range) const noexcept
534
// {
535
//
536
// return this->rear_scan(range, ::comparison::comparison < ITEM >());
537
//
538
// }
539
//
540
//
541
// using BASE_RANGE::rear_scan_start;
542
//
543
// constexpr const_iterator rear_scan_start(const CONST_RAW_RANGE & range, memsize start) const
544
// {
545
//
546
// return this->rear_scan_start(range, start, ::comparison::comparison < ITEM >());
547
//
548
// }
549
//
550
//
551
// using BASE_RANGE::_rear_scan_start_count;
552
//
553
// constexpr const_iterator _rear_scan_start_count(const CONST_RAW_RANGE & range, memsize start, memsize count) const
554
// {
555
//
556
// return this->_rear_scan_start_count(range, start, count, ::comparison::comparison < ITEM >());
557
//
558
// }
559
//
560
//
561
// using BASE_RANGE::rear_scan_start_count;
562
//
563
// constexpr const_iterator rear_scan_start_count(const CONST_RAW_RANGE & range, memsize start, memsize count) const
564
// {
565
//
566
// return this->rear_scan_start_count(range, start, count, ::comparison::comparison < ITEM >());
567
//
568
// }
569
//
570
//
571
// using BASE_RANGE::_begins;
572
//
573
// constexpr bool _begins(const CONST_RAW_RANGE & range) const
574
// {
575
//
576
// return this->_begins(range, ::comparison::comparison < ITEM >());
577
//
578
// }
579
//
580
//
581
// using BASE_RANGE::begins;
582
//
583
// constexpr bool begins(const CONST_RAW_RANGE & range) const
584
// {
585
//
586
// return this->begins(range, ::comparison::comparison < ITEM >());
587
//
588
// }
589
//
590
//
591
// using BASE_RANGE::_begins_start;
592
//
593
// constexpr bool _begins_start(const CONST_RAW_RANGE & range, memsize start) const
594
// {
595
//
596
// return this->_begins_start(range, start, ::comparison::comparison < ITEM >());
597
//
598
// }
599
//
600
//
601
// using BASE_RANGE::begins_start;
602
//
603
// constexpr bool begins_start(const CONST_RAW_RANGE & range, memsize start) const
604
// {
605
//
606
// return this->begins_start(range, start, ::comparison::comparison < ITEM >());
607
//
608
// }
609
//
610
//
611
// using BASE_RANGE::_begins_start_count;
612
//
613
// constexpr bool _begins_start_count(const CONST_RAW_RANGE & range, memsize start, memsize count) const
614
// {
615
//
616
// return this->_begins_start_count(range, start, count, ::comparison::comparison < ITEM >());
617
//
618
// }
619
//
620
//
621
// using BASE_RANGE::begins_start_count;
622
//
623
// constexpr bool begins_start_count(const CONST_RAW_RANGE & range, memsize start, memsize count) const
624
// {
625
//
626
// return this->begins_start_count(range, start, count, ::comparison::comparison < ITEM >());
627
//
628
// }
629
//
630
//
631
//
632
// using BASE_RANGE::_ends;
633
//
634
// constexpr bool _ends(const CONST_RAW_RANGE & range) const
635
// {
636
//
637
// return this->_ends(range, ::comparison::comparison < ITEM >());
638
//
639
// }
640
//
641
//
642
// using BASE_RANGE::ends;
643
//
644
// constexpr bool ends(const CONST_RAW_RANGE & range) const
645
// {
646
//
647
// return this->ends(range, ::comparison::comparison < ITEM >());
648
//
649
// }
650
//
651
//
652
// using BASE_RANGE::_ends_start;
653
//
654
// constexpr bool _ends_start(const CONST_RAW_RANGE & range, memsize start) const
655
// {
656
//
657
// return this->_ends_start(range, start, ::comparison::comparison < ITEM >());
658
//
659
// }
660
//
661
//
662
// using BASE_RANGE::ends_start;
663
//
664
// constexpr bool ends_start(const CONST_RAW_RANGE & range, memsize start) const
665
// {
666
//
667
// return this->ends_start(range, start, ::comparison::comparison < ITEM >());
668
//
669
// }
670
//
671
//
672
// using BASE_RANGE::_ends_start_count;
673
//
674
// constexpr bool _ends_start_count(const CONST_RAW_RANGE & range, memsize start, memsize count) const
675
// {
676
//
677
// return this->_ends_start_count(range, start, count, ::comparison::comparison < ITEM >());
678
//
679
// }
680
//
681
//
682
// using BASE_RANGE::ends_start_count;
683
//
684
// constexpr bool ends_start_count(const CONST_RAW_RANGE & range, memsize start, memsize count) const
685
// {
686
//
687
// return this->ends_start_count(range, start, count, ::comparison::comparison < ITEM >());
688
//
689
// }
690
//
691
//
692
//};
693
//
694
695
//template < typename this_iterator >
696
//using range = comparable_range < range_base < this_iterator > >;
697
698
//
699
//template < typename BASE_RANGE >
700
//class comparable_range :
701
// public comparable_range < BASE_RANGE >
702
//{
703
//public:
704
//
705
// using this_iterator = BASE_RANGE::ITERATOR_TYPE;
706
//
707
// using ITEM = this_iterator::ITEM;
708
//
709
//
710
// using this_iterator = this_iterator::this_iterator;
711
//
712
// using CONST_RAW_RANGE = range < this_iterator >;
713
//
714
// using ITERATOR_TYPE = this_iterator;
715
//
716
// using this_iterator = this_iterator::this_iterator;
717
//
718
// typedef this_iterator const_iterator;
719
//
720
// bool m_bDeclaredNullTerminated = false;
721
//
722
//
723
//
724
// using comparable_range < BASE_RANGE >::comparable_range;
725
//
726
//
727
// comparable_range(const ITEM * pitem) : range(pitem, find_first_null_character(data)), m_bDeclaredNullTerminated(true) {}
728
// comparable_range(this_iterator data) : comparable_range((const ITEM *)data) {}
729
//
730
//
731
// using comparable_range < BASE_RANGE >::_equals;
732
//
733
// constexpr bool _equals(const CONST_RAW_RANGE & range) const
734
// {
735
//
736
// return _equals(range, ::comparison::comparison < ITEM >());
737
//
738
// }
739
//
740
// using comparable_range < BASE_RANGE >::equals;
741
//
742
// constexpr bool equals(const CONST_RAW_RANGE & range) const
743
// {
744
//
745
// return range<const ITEM>(*this).compare(range, equals <const ITEM>);
746
//
747
// }
748
//
749
//
750
// using comparable_range < BASE_RANGE >::_order;
751
//
752
// constexpr ::std::strong_ordering _order(const CONST_RAW_RANGE & range) const
753
// {
754
//
755
// return _order(range, ::compare_const_reference < ITEM >);
756
//
757
// }
758
//
759
// using comparable_range < BASE_RANGE >::compare;
760
//
761
// constexpr ::std::strong_ordering compare(const CONST_RAW_RANGE & range) const
762
// {
763
//
764
// return range<const ITEM>(*this).compare(range, compare_const_reference <const ITEM>);
765
//
766
// }
767
//
768
//
769
// constexpr ::std::strong_ordering operator<=>(const CONST_RAW_RANGE & range) const
770
// {
771
//
772
// return compare(range, ::compare_const_reference < ITEM >);
773
//
774
// }
775
//
776
//
777
// using comparable_range < BASE_RANGE >::find;
778
//
779
//
780
// this_iterator find(const CONST_RAW_RANGE & range, character_count iStart = 0, character_count nCount = -1, this_iterator * ppszTail = nullptr) const RELEASENOTHROW
781
// {
782
//
783
// return find(range, iStart, nCount, ppszTail, ::comparison::comparison < ITEM >());
784
//
785
// }
786
//
787
//
788
// using comparable_range < BASE_RANGE >::_scan;
789
//
790
// constexpr this_iterator _scan(const CONST_RAW_RANGE & range) noexcept
791
// {
792
//
793
// return _scan(range, ::comparison::comparison < ITEM >());
794
//
795
// }
796
//
797
// using comparable_range < BASE_RANGE >::scan;
798
//
799
// constexpr this_iterator scan(const CONST_RAW_RANGE & range) noexcept
800
// {
801
//
802
// return scan(range, ::comparison::comparison < ITEM >());
803
//
804
// }
805
//
806
// using comparable_range < BASE_RANGE >::_span;
807
//
808
// constexpr this_iterator _span(const CONST_RAW_RANGE & range) noexcept
809
// {
810
//
811
// return _span(range, ::comparison::comparison < ITEM >());
812
//
813
// }
814
//
815
// using comparable_range < BASE_RANGE >::span;
816
//
817
// constexpr this_iterator span(const CONST_RAW_RANGE & range) noexcept
818
// {
819
//
820
// return span(range, ::comparison::comparison < ITEM >());
821
//
822
// }
823
//
824
// using comparable_range < BASE_RANGE >::_skip;
825
//
826
// constexpr this_iterator _skip(const ITEM & item) noexcept
827
// {
828
//
829
// return _skip(item, ::comparison::comparison < ITEM >());
830
//
831
// }
832
//
833
// using comparable_range < BASE_RANGE >::skip;
834
//
835
// constexpr this_iterator skip(const ITEM & item) noexcept
836
// {
837
//
838
// return skip(item, ::comparison::comparison < ITEM >());
839
//
840
// }
841
//
842
// using comparable_range < BASE_RANGE >::_rear_find_item;
843
//
844
// constexpr this_iterator _rear_find_item(ITEM item) noexcept
845
// {
846
//
847
// return _rear_find_item(item, ::comparison::comparison < ITEM >());
848
//
849
// }
850
//
851
//
852
// using comparable_range < BASE_RANGE >::rear_find_item;
853
//
854
// constexpr this_iterator rear_find_item(ITEM item) noexcept
855
// {
856
//
857
// return rear_find_item(item, ::comparison::comparison < ITEM >());
858
//
859
// }
860
//
861
// using comparable_range < BASE_RANGE >::_rear_scan;
862
//
863
// constexpr this_iterator _rear_scan(const CONST_RAW_RANGE & range) noexcept
864
// {
865
//
866
// return _rear_scan(range, ::comparison::comparison < ITEM >());
867
//
868
// }
869
//
870
// using comparable_range < BASE_RANGE >::rear_scan;
871
//
872
// constexpr this_iterator rear_scan(const CONST_RAW_RANGE & range) noexcept
873
// {
874
//
875
// return rear_scan(range, ::comparison::comparison < ITEM >());
876
//
877
// }
878
//
879
//};
880
//
881
//
882
//
883
884
885
//template < typename ITEM >
886
//inline bool _range_begins(::range < const ITEM * > range, ::range < const ITEM * > rangePrefix)
887
//{
888
//
889
// return range._begins(rangePrefix);
890
//
891
//}
892
//template < typename ITEM >
893
//inline bool range_begins(::range < const ITEM * > range, ::range < const ITEM * > rangePrefix)
894
//{
895
//
896
// return range.begins(rangePrefix);
897
//
898
//}
899
//template < typename ITEM >
900
//inline bool _range_ends(::range < const ITEM * > range, ::range < const ITEM * > rangeSuffix)
901
//{
902
//
903
// return range._ends(rangeSuffix);
904
//
905
//}
906
//template < typename ITEM, ::comparison::equality < ITEM > EQUALITY >
907
//inline bool range_ends(::range < const ITEM * > range, ::range < const ITEM * > rangeSuffix, EQUALITY equality)
908
//{
909
//
910
// return range.ends(rangeSuffix);
911
//
912
//}
913
prototype
collection
comparable_eq_range.h
Generated by
1.17.0