Skip to content

Commit f82dba0

Browse files
committed
Rename __is_foo_iterator traits to reflect their Cpp17 nature.
With the upcoming introduction of iterator concepts in ranges, the meaning of "__is_contiguous_iterator" changes drastically. Currently we intend it to mean "does it have this iterator category", but it could now also mean "does it meet the requirements of this concept", and these can be different.
1 parent 783cb86 commit f82dba0

File tree

13 files changed

+200
-196
lines changed

13 files changed

+200
-196
lines changed

libcxx/include/__split_buffer

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -116,15 +116,15 @@ public:
116116
template <class _InputIter>
117117
typename enable_if
118118
<
119-
__is_input_iterator<_InputIter>::value &&
120-
!__is_forward_iterator<_InputIter>::value,
119+
__is_cpp17_input_iterator<_InputIter>::value &&
120+
!__is_cpp17_forward_iterator<_InputIter>::value,
121121
void
122122
>::type
123123
__construct_at_end(_InputIter __first, _InputIter __last);
124124
template <class _ForwardIterator>
125125
typename enable_if
126126
<
127-
__is_forward_iterator<_ForwardIterator>::value,
127+
__is_cpp17_forward_iterator<_ForwardIterator>::value,
128128
void
129129
>::type
130130
__construct_at_end(_ForwardIterator __first, _ForwardIterator __last);
@@ -237,8 +237,8 @@ template <class _Tp, class _Allocator>
237237
template <class _InputIter>
238238
typename enable_if
239239
<
240-
__is_input_iterator<_InputIter>::value &&
241-
!__is_forward_iterator<_InputIter>::value,
240+
__is_cpp17_input_iterator<_InputIter>::value &&
241+
!__is_cpp17_forward_iterator<_InputIter>::value,
242242
void
243243
>::type
244244
__split_buffer<_Tp, _Allocator>::__construct_at_end(_InputIter __first, _InputIter __last)
@@ -265,7 +265,7 @@ template <class _Tp, class _Allocator>
265265
template <class _ForwardIterator>
266266
typename enable_if
267267
<
268-
__is_forward_iterator<_ForwardIterator>::value,
268+
__is_cpp17_forward_iterator<_ForwardIterator>::value,
269269
void
270270
>::type
271271
__split_buffer<_Tp, _Allocator>::__construct_at_end(_ForwardIterator __first, _ForwardIterator __last)

libcxx/include/__tree

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1656,7 +1656,7 @@ __tree<_Tp, _Compare, _Allocator>::__assign_unique(_ForwardIterator __first, _Fo
16561656
typedef typename _ITraits::value_type _ItValueType;
16571657
static_assert((is_same<_ItValueType, __container_value_type>::value),
16581658
"__assign_unique may only be called with the containers value type");
1659-
static_assert(__is_forward_iterator<_ForwardIterator>::value,
1659+
static_assert(__is_cpp17_forward_iterator<_ForwardIterator>::value,
16601660
"__assign_unique requires a forward iterator");
16611661
if (size() != 0)
16621662
{

libcxx/include/algorithm

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1821,8 +1821,8 @@ template<class _InputIterator, class _Size, class _OutputIterator>
18211821
inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX17_WITH_IS_CONSTANT_EVALUATED
18221822
typename enable_if
18231823
<
1824-
__is_input_iterator<_InputIterator>::value &&
1825-
!__is_random_access_iterator<_InputIterator>::value,
1824+
__is_cpp17_input_iterator<_InputIterator>::value &&
1825+
!__is_cpp17_random_access_iterator<_InputIterator>::value,
18261826
_OutputIterator
18271827
>::type
18281828
copy_n(_InputIterator __first, _Size __orig_n, _OutputIterator __result)
@@ -1847,7 +1847,7 @@ template<class _InputIterator, class _Size, class _OutputIterator>
18471847
inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX17_WITH_IS_CONSTANT_EVALUATED
18481848
typename enable_if
18491849
<
1850-
__is_random_access_iterator<_InputIterator>::value,
1850+
__is_cpp17_random_access_iterator<_InputIterator>::value,
18511851
_OutputIterator
18521852
>::type
18531853
copy_n(_InputIterator __first, _Size __orig_n, _OutputIterator __result)
@@ -2520,7 +2520,7 @@ _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
25202520
_ForwardIterator
25212521
min_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp)
25222522
{
2523-
static_assert(__is_forward_iterator<_ForwardIterator>::value,
2523+
static_assert(__is_cpp17_forward_iterator<_ForwardIterator>::value,
25242524
"std::min_element requires a ForwardIterator");
25252525
if (__first != __last)
25262526
{
@@ -2592,7 +2592,7 @@ _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
25922592
_ForwardIterator
25932593
max_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp)
25942594
{
2595-
static_assert(__is_forward_iterator<_ForwardIterator>::value,
2595+
static_assert(__is_cpp17_forward_iterator<_ForwardIterator>::value,
25962596
"std::max_element requires a ForwardIterator");
25972597
if (__first != __last)
25982598
{
@@ -2687,7 +2687,7 @@ _LIBCPP_NODISCARD_EXT _LIBCPP_CONSTEXPR_AFTER_CXX11
26872687
std::pair<_ForwardIterator, _ForwardIterator>
26882688
minmax_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp)
26892689
{
2690-
static_assert(__is_forward_iterator<_ForwardIterator>::value,
2690+
static_assert(__is_cpp17_forward_iterator<_ForwardIterator>::value,
26912691
"std::minmax_element requires a ForwardIterator");
26922692
std::pair<_ForwardIterator, _ForwardIterator> __result(__first, __first);
26932693
if (__first != __last)
@@ -3186,8 +3186,8 @@ _SampleIterator __sample(_PopulationIterator __first,
31863186
_PopCategory;
31873187
typedef typename iterator_traits<_PopulationIterator>::difference_type
31883188
_Difference;
3189-
static_assert(__is_forward_iterator<_PopulationIterator>::value ||
3190-
__is_random_access_iterator<_SampleIterator>::value,
3189+
static_assert(__is_cpp17_forward_iterator<_PopulationIterator>::value ||
3190+
__is_cpp17_random_access_iterator<_SampleIterator>::value,
31913191
"SampleIterator must meet the requirements of RandomAccessIterator");
31923192
typedef typename common_type<_Distance, _Difference>::type _CommonType;
31933193
_LIBCPP_ASSERT(__n >= 0, "N must be a positive number.");

libcxx/include/deque

Lines changed: 38 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
190190
copy(_RAIter __f,
191191
_RAIter __l,
192192
__deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,
193-
typename enable_if<__is_random_access_iterator<_RAIter>::value>::type* = 0);
193+
typename enable_if<__is_cpp17_random_access_iterator<_RAIter>::value>::type* = 0);
194194

195195
template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
196196
class _OutputIterator>
@@ -212,7 +212,7 @@ __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
212212
copy_backward(_RAIter __f,
213213
_RAIter __l,
214214
__deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,
215-
typename enable_if<__is_random_access_iterator<_RAIter>::value>::type* = 0);
215+
typename enable_if<__is_cpp17_random_access_iterator<_RAIter>::value>::type* = 0);
216216

217217
template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
218218
class _OutputIterator>
@@ -234,7 +234,7 @@ __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
234234
move(_RAIter __f,
235235
_RAIter __l,
236236
__deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,
237-
typename enable_if<__is_random_access_iterator<_RAIter>::value>::type* = 0);
237+
typename enable_if<__is_cpp17_random_access_iterator<_RAIter>::value>::type* = 0);
238238

239239
template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
240240
class _OutputIterator>
@@ -256,7 +256,7 @@ __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
256256
move_backward(_RAIter __f,
257257
_RAIter __l,
258258
__deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,
259-
typename enable_if<__is_random_access_iterator<_RAIter>::value>::type* = 0);
259+
typename enable_if<__is_cpp17_random_access_iterator<_RAIter>::value>::type* = 0);
260260

261261
template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
262262
class _OutputIterator>
@@ -450,7 +450,7 @@ private:
450450
copy(_RAIter __f,
451451
_RAIter __l,
452452
__deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,
453-
typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*);
453+
typename enable_if<__is_cpp17_random_access_iterator<_RAIter>::value>::type*);
454454

455455
template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
456456
class _OutputIterator>
@@ -475,7 +475,7 @@ private:
475475
copy_backward(_RAIter __f,
476476
_RAIter __l,
477477
__deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,
478-
typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*);
478+
typename enable_if<__is_cpp17_random_access_iterator<_RAIter>::value>::type*);
479479

480480
template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
481481
class _OutputIterator>
@@ -500,7 +500,7 @@ private:
500500
move(_RAIter __f,
501501
_RAIter __l,
502502
__deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,
503-
typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*);
503+
typename enable_if<__is_cpp17_random_access_iterator<_RAIter>::value>::type*);
504504

505505
template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
506506
class _OutputIterator>
@@ -525,7 +525,7 @@ private:
525525
move_backward(_RAIter __f,
526526
_RAIter __l,
527527
__deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,
528-
typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*);
528+
typename enable_if<__is_cpp17_random_access_iterator<_RAIter>::value>::type*);
529529

530530
template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
531531
class _OutputIterator>
@@ -558,7 +558,7 @@ __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
558558
copy(_RAIter __f,
559559
_RAIter __l,
560560
__deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,
561-
typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*)
561+
typename enable_if<__is_cpp17_random_access_iterator<_RAIter>::value>::type*)
562562
{
563563
typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::difference_type difference_type;
564564
typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::pointer pointer;
@@ -646,7 +646,7 @@ __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
646646
copy_backward(_RAIter __f,
647647
_RAIter __l,
648648
__deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,
649-
typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*)
649+
typename enable_if<__is_cpp17_random_access_iterator<_RAIter>::value>::type*)
650650
{
651651
typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::difference_type difference_type;
652652
typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::pointer pointer;
@@ -734,7 +734,7 @@ __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
734734
move(_RAIter __f,
735735
_RAIter __l,
736736
__deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,
737-
typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*)
737+
typename enable_if<__is_cpp17_random_access_iterator<_RAIter>::value>::type*)
738738
{
739739
typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::difference_type difference_type;
740740
typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::pointer pointer;
@@ -822,7 +822,7 @@ __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
822822
move_backward(_RAIter __f,
823823
_RAIter __l,
824824
__deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,
825-
typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*)
825+
typename enable_if<__is_cpp17_random_access_iterator<_RAIter>::value>::type*)
826826
{
827827
typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::difference_type difference_type;
828828
typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::pointer pointer;
@@ -1308,10 +1308,10 @@ public:
13081308
deque(size_type __n, const value_type& __v, const allocator_type& __a);
13091309
template <class _InputIter>
13101310
deque(_InputIter __f, _InputIter __l,
1311-
typename enable_if<__is_input_iterator<_InputIter>::value>::type* = 0);
1311+
typename enable_if<__is_cpp17_input_iterator<_InputIter>::value>::type* = 0);
13121312
template <class _InputIter>
13131313
deque(_InputIter __f, _InputIter __l, const allocator_type& __a,
1314-
typename enable_if<__is_input_iterator<_InputIter>::value>::type* = 0);
1314+
typename enable_if<__is_cpp17_input_iterator<_InputIter>::value>::type* = 0);
13151315
deque(const deque& __c);
13161316
deque(const deque& __c, const allocator_type& __a);
13171317

@@ -1339,11 +1339,11 @@ public:
13391339

13401340
template <class _InputIter>
13411341
void assign(_InputIter __f, _InputIter __l,
1342-
typename enable_if<__is_input_iterator<_InputIter>::value &&
1343-
!__is_random_access_iterator<_InputIter>::value>::type* = 0);
1342+
typename enable_if<__is_cpp17_input_iterator<_InputIter>::value &&
1343+
!__is_cpp17_random_access_iterator<_InputIter>::value>::type* = 0);
13441344
template <class _RAIter>
13451345
void assign(_RAIter __f, _RAIter __l,
1346-
typename enable_if<__is_random_access_iterator<_RAIter>::value>::type* = 0);
1346+
typename enable_if<__is_cpp17_random_access_iterator<_RAIter>::value>::type* = 0);
13471347
void assign(size_type __n, const value_type& __v);
13481348

13491349
_LIBCPP_INLINE_VISIBILITY
@@ -1443,15 +1443,15 @@ public:
14431443
iterator insert(const_iterator __p, size_type __n, const value_type& __v);
14441444
template <class _InputIter>
14451445
iterator insert(const_iterator __p, _InputIter __f, _InputIter __l,
1446-
typename enable_if<__is_input_iterator<_InputIter>::value
1447-
&&!__is_forward_iterator<_InputIter>::value>::type* = 0);
1446+
typename enable_if<__is_cpp17_input_iterator<_InputIter>::value
1447+
&&!__is_cpp17_forward_iterator<_InputIter>::value>::type* = 0);
14481448
template <class _ForwardIterator>
14491449
iterator insert(const_iterator __p, _ForwardIterator __f, _ForwardIterator __l,
1450-
typename enable_if<__is_forward_iterator<_ForwardIterator>::value
1451-
&&!__is_bidirectional_iterator<_ForwardIterator>::value>::type* = 0);
1450+
typename enable_if<__is_cpp17_forward_iterator<_ForwardIterator>::value
1451+
&&!__is_cpp17_bidirectional_iterator<_ForwardIterator>::value>::type* = 0);
14521452
template <class _BiIter>
14531453
iterator insert(const_iterator __p, _BiIter __f, _BiIter __l,
1454-
typename enable_if<__is_bidirectional_iterator<_BiIter>::value>::type* = 0);
1454+
typename enable_if<__is_cpp17_bidirectional_iterator<_BiIter>::value>::type* = 0);
14551455

14561456
void pop_front();
14571457
void pop_back();
@@ -1535,11 +1535,11 @@ public:
15351535

15361536
template <class _InpIter>
15371537
void __append(_InpIter __f, _InpIter __l,
1538-
typename enable_if<__is_input_iterator<_InpIter>::value &&
1539-
!__is_forward_iterator<_InpIter>::value>::type* = 0);
1538+
typename enable_if<__is_cpp17_input_iterator<_InpIter>::value &&
1539+
!__is_cpp17_forward_iterator<_InpIter>::value>::type* = 0);
15401540
template <class _ForIter>
15411541
void __append(_ForIter __f, _ForIter __l,
1542-
typename enable_if<__is_forward_iterator<_ForIter>::value>::type* = 0);
1542+
typename enable_if<__is_cpp17_forward_iterator<_ForIter>::value>::type* = 0);
15431543
void __append(size_type __n);
15441544
void __append(size_type __n, const value_type& __v);
15451545
void __erase_to_end(const_iterator __f);
@@ -1634,15 +1634,15 @@ deque<_Tp, _Allocator>::deque(size_type __n, const value_type& __v, const alloca
16341634
template <class _Tp, class _Allocator>
16351635
template <class _InputIter>
16361636
deque<_Tp, _Allocator>::deque(_InputIter __f, _InputIter __l,
1637-
typename enable_if<__is_input_iterator<_InputIter>::value>::type*)
1637+
typename enable_if<__is_cpp17_input_iterator<_InputIter>::value>::type*)
16381638
{
16391639
__append(__f, __l);
16401640
}
16411641

16421642
template <class _Tp, class _Allocator>
16431643
template <class _InputIter>
16441644
deque<_Tp, _Allocator>::deque(_InputIter __f, _InputIter __l, const allocator_type& __a,
1645-
typename enable_if<__is_input_iterator<_InputIter>::value>::type*)
1645+
typename enable_if<__is_cpp17_input_iterator<_InputIter>::value>::type*)
16461646
: __base(__a)
16471647
{
16481648
__append(__f, __l);
@@ -1750,8 +1750,8 @@ template <class _Tp, class _Allocator>
17501750
template <class _InputIter>
17511751
void
17521752
deque<_Tp, _Allocator>::assign(_InputIter __f, _InputIter __l,
1753-
typename enable_if<__is_input_iterator<_InputIter>::value &&
1754-
!__is_random_access_iterator<_InputIter>::value>::type*)
1753+
typename enable_if<__is_cpp17_input_iterator<_InputIter>::value &&
1754+
!__is_cpp17_random_access_iterator<_InputIter>::value>::type*)
17551755
{
17561756
iterator __i = __base::begin();
17571757
iterator __e = __base::end();
@@ -1767,7 +1767,7 @@ template <class _Tp, class _Allocator>
17671767
template <class _RAIter>
17681768
void
17691769
deque<_Tp, _Allocator>::assign(_RAIter __f, _RAIter __l,
1770-
typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*)
1770+
typename enable_if<__is_cpp17_random_access_iterator<_RAIter>::value>::type*)
17711771
{
17721772
if (static_cast<size_type>(__l - __f) > __base::size())
17731773
{
@@ -2252,8 +2252,8 @@ template <class _Tp, class _Allocator>
22522252
template <class _InputIter>
22532253
typename deque<_Tp, _Allocator>::iterator
22542254
deque<_Tp, _Allocator>::insert(const_iterator __p, _InputIter __f, _InputIter __l,
2255-
typename enable_if<__is_input_iterator<_InputIter>::value
2256-
&&!__is_forward_iterator<_InputIter>::value>::type*)
2255+
typename enable_if<__is_cpp17_input_iterator<_InputIter>::value
2256+
&&!__is_cpp17_forward_iterator<_InputIter>::value>::type*)
22572257
{
22582258
__split_buffer<value_type, allocator_type&> __buf(__base::__alloc());
22592259
__buf.__construct_at_end(__f, __l);
@@ -2265,8 +2265,8 @@ template <class _Tp, class _Allocator>
22652265
template <class _ForwardIterator>
22662266
typename deque<_Tp, _Allocator>::iterator
22672267
deque<_Tp, _Allocator>::insert(const_iterator __p, _ForwardIterator __f, _ForwardIterator __l,
2268-
typename enable_if<__is_forward_iterator<_ForwardIterator>::value
2269-
&&!__is_bidirectional_iterator<_ForwardIterator>::value>::type*)
2268+
typename enable_if<__is_cpp17_forward_iterator<_ForwardIterator>::value
2269+
&&!__is_cpp17_bidirectional_iterator<_ForwardIterator>::value>::type*)
22702270
{
22712271
size_type __n = _VSTD::distance(__f, __l);
22722272
__split_buffer<value_type, allocator_type&> __buf(__n, 0, __base::__alloc());
@@ -2279,7 +2279,7 @@ template <class _Tp, class _Allocator>
22792279
template <class _BiIter>
22802280
typename deque<_Tp, _Allocator>::iterator
22812281
deque<_Tp, _Allocator>::insert(const_iterator __p, _BiIter __f, _BiIter __l,
2282-
typename enable_if<__is_bidirectional_iterator<_BiIter>::value>::type*)
2282+
typename enable_if<__is_cpp17_bidirectional_iterator<_BiIter>::value>::type*)
22832283
{
22842284
size_type __n = _VSTD::distance(__f, __l);
22852285
size_type __pos = __p - __base::begin();
@@ -2348,8 +2348,8 @@ template <class _Tp, class _Allocator>
23482348
template <class _InpIter>
23492349
void
23502350
deque<_Tp, _Allocator>::__append(_InpIter __f, _InpIter __l,
2351-
typename enable_if<__is_input_iterator<_InpIter>::value &&
2352-
!__is_forward_iterator<_InpIter>::value>::type*)
2351+
typename enable_if<__is_cpp17_input_iterator<_InpIter>::value &&
2352+
!__is_cpp17_forward_iterator<_InpIter>::value>::type*)
23532353
{
23542354
for (; __f != __l; ++__f)
23552355
#ifdef _LIBCPP_CXX03_LANG
@@ -2363,7 +2363,7 @@ template <class _Tp, class _Allocator>
23632363
template <class _ForIter>
23642364
void
23652365
deque<_Tp, _Allocator>::__append(_ForIter __f, _ForIter __l,
2366-
typename enable_if<__is_forward_iterator<_ForIter>::value>::type*)
2366+
typename enable_if<__is_cpp17_forward_iterator<_ForIter>::value>::type*)
23672367
{
23682368
size_type __n = _VSTD::distance(__f, __l);
23692369
allocator_type& __a = __base::__alloc();

0 commit comments

Comments
 (0)