diff options
Diffstat (limited to 'libcxx')
-rw-r--r-- | libcxx/include/__split_buffer | 12 | ||||
-rw-r--r-- | libcxx/include/__tree | 2 | ||||
-rw-r--r-- | libcxx/include/algorithm | 16 | ||||
-rw-r--r-- | libcxx/include/deque | 76 | ||||
-rw-r--r-- | libcxx/include/filesystem | 6 | ||||
-rw-r--r-- | libcxx/include/forward_list | 16 | ||||
-rw-r--r-- | libcxx/include/iterator | 26 | ||||
-rw-r--r-- | libcxx/include/list | 16 | ||||
-rw-r--r-- | libcxx/include/queue | 2 | ||||
-rw-r--r-- | libcxx/include/regex | 8 | ||||
-rw-r--r-- | libcxx/include/string | 42 | ||||
-rw-r--r-- | libcxx/include/vector | 104 | ||||
-rw-r--r-- | libcxx/test/libcxx/iterators/trivial_iterators.pass.cpp | 70 |
13 files changed, 200 insertions, 196 deletions
diff --git a/libcxx/include/__split_buffer b/libcxx/include/__split_buffer index f221aee074f..d70c0a7f166 100644 --- a/libcxx/include/__split_buffer +++ b/libcxx/include/__split_buffer @@ -116,15 +116,15 @@ public: template <class _InputIter> typename enable_if < - __is_input_iterator<_InputIter>::value && - !__is_forward_iterator<_InputIter>::value, + __is_cpp17_input_iterator<_InputIter>::value && + !__is_cpp17_forward_iterator<_InputIter>::value, void >::type __construct_at_end(_InputIter __first, _InputIter __last); template <class _ForwardIterator> typename enable_if < - __is_forward_iterator<_ForwardIterator>::value, + __is_cpp17_forward_iterator<_ForwardIterator>::value, void >::type __construct_at_end(_ForwardIterator __first, _ForwardIterator __last); @@ -237,8 +237,8 @@ template <class _Tp, class _Allocator> template <class _InputIter> typename enable_if < - __is_input_iterator<_InputIter>::value && - !__is_forward_iterator<_InputIter>::value, + __is_cpp17_input_iterator<_InputIter>::value && + !__is_cpp17_forward_iterator<_InputIter>::value, void >::type __split_buffer<_Tp, _Allocator>::__construct_at_end(_InputIter __first, _InputIter __last) @@ -265,7 +265,7 @@ template <class _Tp, class _Allocator> template <class _ForwardIterator> typename enable_if < - __is_forward_iterator<_ForwardIterator>::value, + __is_cpp17_forward_iterator<_ForwardIterator>::value, void >::type __split_buffer<_Tp, _Allocator>::__construct_at_end(_ForwardIterator __first, _ForwardIterator __last) diff --git a/libcxx/include/__tree b/libcxx/include/__tree index 15b03ec857f..8421299c9bc 100644 --- a/libcxx/include/__tree +++ b/libcxx/include/__tree @@ -1656,7 +1656,7 @@ __tree<_Tp, _Compare, _Allocator>::__assign_unique(_ForwardIterator __first, _Fo typedef typename _ITraits::value_type _ItValueType; static_assert((is_same<_ItValueType, __container_value_type>::value), "__assign_unique may only be called with the containers value type"); - static_assert(__is_forward_iterator<_ForwardIterator>::value, + static_assert(__is_cpp17_forward_iterator<_ForwardIterator>::value, "__assign_unique requires a forward iterator"); if (size() != 0) { diff --git a/libcxx/include/algorithm b/libcxx/include/algorithm index 7481cc21ca5..83e49f19ab9 100644 --- a/libcxx/include/algorithm +++ b/libcxx/include/algorithm @@ -1821,8 +1821,8 @@ template<class _InputIterator, class _Size, class _OutputIterator> inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX17_WITH_IS_CONSTANT_EVALUATED typename enable_if < - __is_input_iterator<_InputIterator>::value && - !__is_random_access_iterator<_InputIterator>::value, + __is_cpp17_input_iterator<_InputIterator>::value && + !__is_cpp17_random_access_iterator<_InputIterator>::value, _OutputIterator >::type copy_n(_InputIterator __first, _Size __orig_n, _OutputIterator __result) @@ -1847,7 +1847,7 @@ template<class _InputIterator, class _Size, class _OutputIterator> inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX17_WITH_IS_CONSTANT_EVALUATED typename enable_if < - __is_random_access_iterator<_InputIterator>::value, + __is_cpp17_random_access_iterator<_InputIterator>::value, _OutputIterator >::type copy_n(_InputIterator __first, _Size __orig_n, _OutputIterator __result) @@ -2520,7 +2520,7 @@ _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 _ForwardIterator min_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp) { - static_assert(__is_forward_iterator<_ForwardIterator>::value, + static_assert(__is_cpp17_forward_iterator<_ForwardIterator>::value, "std::min_element requires a ForwardIterator"); if (__first != __last) { @@ -2592,7 +2592,7 @@ _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 _ForwardIterator max_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp) { - static_assert(__is_forward_iterator<_ForwardIterator>::value, + static_assert(__is_cpp17_forward_iterator<_ForwardIterator>::value, "std::max_element requires a ForwardIterator"); if (__first != __last) { @@ -2687,7 +2687,7 @@ _LIBCPP_NODISCARD_EXT _LIBCPP_CONSTEXPR_AFTER_CXX11 std::pair<_ForwardIterator, _ForwardIterator> minmax_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp) { - static_assert(__is_forward_iterator<_ForwardIterator>::value, + static_assert(__is_cpp17_forward_iterator<_ForwardIterator>::value, "std::minmax_element requires a ForwardIterator"); std::pair<_ForwardIterator, _ForwardIterator> __result(__first, __first); if (__first != __last) @@ -3186,8 +3186,8 @@ _SampleIterator __sample(_PopulationIterator __first, _PopCategory; typedef typename iterator_traits<_PopulationIterator>::difference_type _Difference; - static_assert(__is_forward_iterator<_PopulationIterator>::value || - __is_random_access_iterator<_SampleIterator>::value, + static_assert(__is_cpp17_forward_iterator<_PopulationIterator>::value || + __is_cpp17_random_access_iterator<_SampleIterator>::value, "SampleIterator must meet the requirements of RandomAccessIterator"); typedef typename common_type<_Distance, _Difference>::type _CommonType; _LIBCPP_ASSERT(__n >= 0, "N must be a positive number."); diff --git a/libcxx/include/deque b/libcxx/include/deque index 831b8e4948f..b2582f48644 100644 --- a/libcxx/include/deque +++ b/libcxx/include/deque @@ -190,7 +190,7 @@ __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> copy(_RAIter __f, _RAIter __l, __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r, - typename enable_if<__is_random_access_iterator<_RAIter>::value>::type* = 0); + typename enable_if<__is_cpp17_random_access_iterator<_RAIter>::value>::type* = 0); template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1, class _OutputIterator> @@ -212,7 +212,7 @@ __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> copy_backward(_RAIter __f, _RAIter __l, __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r, - typename enable_if<__is_random_access_iterator<_RAIter>::value>::type* = 0); + typename enable_if<__is_cpp17_random_access_iterator<_RAIter>::value>::type* = 0); template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1, class _OutputIterator> @@ -234,7 +234,7 @@ __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> move(_RAIter __f, _RAIter __l, __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r, - typename enable_if<__is_random_access_iterator<_RAIter>::value>::type* = 0); + typename enable_if<__is_cpp17_random_access_iterator<_RAIter>::value>::type* = 0); template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1, class _OutputIterator> @@ -256,7 +256,7 @@ __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> move_backward(_RAIter __f, _RAIter __l, __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r, - typename enable_if<__is_random_access_iterator<_RAIter>::value>::type* = 0); + typename enable_if<__is_cpp17_random_access_iterator<_RAIter>::value>::type* = 0); template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1, class _OutputIterator> @@ -450,7 +450,7 @@ private: copy(_RAIter __f, _RAIter __l, __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r, - typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*); + typename enable_if<__is_cpp17_random_access_iterator<_RAIter>::value>::type*); template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1, class _OutputIterator> @@ -475,7 +475,7 @@ private: copy_backward(_RAIter __f, _RAIter __l, __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r, - typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*); + typename enable_if<__is_cpp17_random_access_iterator<_RAIter>::value>::type*); template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1, class _OutputIterator> @@ -500,7 +500,7 @@ private: move(_RAIter __f, _RAIter __l, __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r, - typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*); + typename enable_if<__is_cpp17_random_access_iterator<_RAIter>::value>::type*); template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1, class _OutputIterator> @@ -525,7 +525,7 @@ private: move_backward(_RAIter __f, _RAIter __l, __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r, - typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*); + typename enable_if<__is_cpp17_random_access_iterator<_RAIter>::value>::type*); template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1, class _OutputIterator> @@ -558,7 +558,7 @@ __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> copy(_RAIter __f, _RAIter __l, __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r, - typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*) + typename enable_if<__is_cpp17_random_access_iterator<_RAIter>::value>::type*) { typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::difference_type difference_type; typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::pointer pointer; @@ -646,7 +646,7 @@ __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> copy_backward(_RAIter __f, _RAIter __l, __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r, - typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*) + typename enable_if<__is_cpp17_random_access_iterator<_RAIter>::value>::type*) { typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::difference_type difference_type; typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::pointer pointer; @@ -734,7 +734,7 @@ __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> move(_RAIter __f, _RAIter __l, __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r, - typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*) + typename enable_if<__is_cpp17_random_access_iterator<_RAIter>::value>::type*) { typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::difference_type difference_type; typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::pointer pointer; @@ -822,7 +822,7 @@ __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> move_backward(_RAIter __f, _RAIter __l, __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r, - typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*) + typename enable_if<__is_cpp17_random_access_iterator<_RAIter>::value>::type*) { typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::difference_type difference_type; typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::pointer pointer; @@ -1308,10 +1308,10 @@ public: deque(size_type __n, const value_type& __v, const allocator_type& __a); template <class _InputIter> deque(_InputIter __f, _InputIter __l, - typename enable_if<__is_input_iterator<_InputIter>::value>::type* = 0); + typename enable_if<__is_cpp17_input_iterator<_InputIter>::value>::type* = 0); template <class _InputIter> deque(_InputIter __f, _InputIter __l, const allocator_type& __a, - typename enable_if<__is_input_iterator<_InputIter>::value>::type* = 0); + typename enable_if<__is_cpp17_input_iterator<_InputIter>::value>::type* = 0); deque(const deque& __c); deque(const deque& __c, const allocator_type& __a); @@ -1339,11 +1339,11 @@ public: template <class _InputIter> void assign(_InputIter __f, _InputIter __l, - typename enable_if<__is_input_iterator<_InputIter>::value && - !__is_random_access_iterator<_InputIter>::value>::type* = 0); + typename enable_if<__is_cpp17_input_iterator<_InputIter>::value && + !__is_cpp17_random_access_iterator<_InputIter>::value>::type* = 0); template <class _RAIter> void assign(_RAIter __f, _RAIter __l, - typename enable_if<__is_random_access_iterator<_RAIter>::value>::type* = 0); + typename enable_if<__is_cpp17_random_access_iterator<_RAIter>::value>::type* = 0); void assign(size_type __n, const value_type& __v); _LIBCPP_INLINE_VISIBILITY @@ -1443,15 +1443,15 @@ public: iterator insert(const_iterator __p, size_type __n, const value_type& __v); template <class _InputIter> iterator insert(const_iterator __p, _InputIter __f, _InputIter __l, - typename enable_if<__is_input_iterator<_InputIter>::value - &&!__is_forward_iterator<_InputIter>::value>::type* = 0); + typename enable_if<__is_cpp17_input_iterator<_InputIter>::value + &&!__is_cpp17_forward_iterator<_InputIter>::value>::type* = 0); template <class _ForwardIterator> iterator insert(const_iterator __p, _ForwardIterator __f, _ForwardIterator __l, - typename enable_if<__is_forward_iterator<_ForwardIterator>::value - &&!__is_bidirectional_iterator<_ForwardIterator>::value>::type* = 0); + typename enable_if<__is_cpp17_forward_iterator<_ForwardIterator>::value + &&!__is_cpp17_bidirectional_iterator<_ForwardIterator>::value>::type* = 0); template <class _BiIter> iterator insert(const_iterator __p, _BiIter __f, _BiIter __l, - typename enable_if<__is_bidirectional_iterator<_BiIter>::value>::type* = 0); + typename enable_if<__is_cpp17_bidirectional_iterator<_BiIter>::value>::type* = 0); void pop_front(); void pop_back(); @@ -1535,11 +1535,11 @@ public: template <class _InpIter> void __append(_InpIter __f, _InpIter __l, - typename enable_if<__is_input_iterator<_InpIter>::value && - !__is_forward_iterator<_InpIter>::value>::type* = 0); + typename enable_if<__is_cpp17_input_iterator<_InpIter>::value && + !__is_cpp17_forward_iterator<_InpIter>::value>::type* = 0); template <class _ForIter> void __append(_ForIter __f, _ForIter __l, - typename enable_if<__is_forward_iterator<_ForIter>::value>::type* = 0); + typename enable_if<__is_cpp17_forward_iterator<_ForIter>::value>::type* = 0); void __append(size_type __n); void __append(size_type __n, const value_type& __v); void __erase_to_end(const_iterator __f); @@ -1634,7 +1634,7 @@ deque<_Tp, _Allocator>::deque(size_type __n, const value_type& __v, const alloca template <class _Tp, class _Allocator> template <class _InputIter> deque<_Tp, _Allocator>::deque(_InputIter __f, _InputIter __l, - typename enable_if<__is_input_iterator<_InputIter>::value>::type*) + typename enable_if<__is_cpp17_input_iterator<_InputIter>::value>::type*) { __append(__f, __l); } @@ -1642,7 +1642,7 @@ deque<_Tp, _Allocator>::deque(_InputIter __f, _InputIter __l, template <class _Tp, class _Allocator> template <class _InputIter> deque<_Tp, _Allocator>::deque(_InputIter __f, _InputIter __l, const allocator_type& __a, - typename enable_if<__is_input_iterator<_InputIter>::value>::type*) + typename enable_if<__is_cpp17_input_iterator<_InputIter>::value>::type*) : __base(__a) { __append(__f, __l); @@ -1750,8 +1750,8 @@ template <class _Tp, class _Allocator> template <class _InputIter> void deque<_Tp, _Allocator>::assign(_InputIter __f, _InputIter __l, - typename enable_if<__is_input_iterator<_InputIter>::value && - !__is_random_access_iterator<_InputIter>::value>::type*) + typename enable_if<__is_cpp17_input_iterator<_InputIter>::value && + !__is_cpp17_random_access_iterator<_InputIter>::value>::type*) { iterator __i = __base::begin(); iterator __e = __base::end(); @@ -1767,7 +1767,7 @@ template <class _Tp, class _Allocator> template <class _RAIter> void deque<_Tp, _Allocator>::assign(_RAIter __f, _RAIter __l, - typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*) + typename enable_if<__is_cpp17_random_access_iterator<_RAIter>::value>::type*) { if (static_cast<size_type>(__l - __f) > __base::size()) { @@ -2252,8 +2252,8 @@ template <class _Tp, class _Allocator> template <class _InputIter> typename deque<_Tp, _Allocator>::iterator deque<_Tp, _Allocator>::insert(const_iterator __p, _InputIter __f, _InputIter __l, - typename enable_if<__is_input_iterator<_InputIter>::value - &&!__is_forward_iterator<_InputIter>::value>::type*) + typename enable_if<__is_cpp17_input_iterator<_InputIter>::value + &&!__is_cpp17_forward_iterator<_InputIter>::value>::type*) { __split_buffer<value_type, allocator_type&> __buf(__base::__alloc()); __buf.__construct_at_end(__f, __l); @@ -2265,8 +2265,8 @@ template <class _Tp, class _Allocator> template <class _ForwardIterator> typename deque<_Tp, _Allocator>::iterator deque<_Tp, _Allocator>::insert(const_iterator __p, _ForwardIterator __f, _ForwardIterator __l, - typename enable_if<__is_forward_iterator<_ForwardIterator>::value - &&!__is_bidirectional_iterator<_ForwardIterator>::value>::type*) + typename enable_if<__is_cpp17_forward_iterator<_ForwardIterator>::value + &&!__is_cpp17_bidirectional_iterator<_ForwardIterator>::value>::type*) { size_type __n = _VSTD::distance(__f, __l); __split_buffer<value_type, allocator_type&> __buf(__n, 0, __base::__alloc()); @@ -2279,7 +2279,7 @@ template <class _Tp, class _Allocator> template <class _BiIter> typename deque<_Tp, _Allocator>::iterator deque<_Tp, _Allocator>::insert(const_iterator __p, _BiIter __f, _BiIter __l, - typename enable_if<__is_bidirectional_iterator<_BiIter>::value>::type*) + typename enable_if<__is_cpp17_bidirectional_iterator<_BiIter>::value>::type*) { size_type __n = _VSTD::distance(__f, __l); size_type __pos = __p - __base::begin(); @@ -2348,8 +2348,8 @@ template <class _Tp, class _Allocator> template <class _InpIter> void deque<_Tp, _Allocator>::__append(_InpIter __f, _InpIter __l, - typename enable_if<__is_input_iterator<_InpIter>::value && - !__is_forward_iterator<_InpIter>::value>::type*) + typename enable_if<__is_cpp17_input_iterator<_InpIter>::value && + !__is_cpp17_forward_iterator<_InpIter>::value>::type*) { for (; __f != __l; ++__f) #ifdef _LIBCPP_CXX03_LANG @@ -2363,7 +2363,7 @@ template <class _Tp, class _Allocator> template <class _ForIter> void deque<_Tp, _Allocator>::__append(_ForIter __f, _ForIter __l, - typename enable_if<__is_forward_iterator<_ForIter>::value>::type*) + typename enable_if<__is_cpp17_forward_iterator<_ForIter>::value>::type*) { size_type __n = _VSTD::distance(__f, __l); allocator_type& __a = __base::__alloc(); diff --git a/libcxx/include/filesystem b/libcxx/include/filesystem index 9020a12fea1..0f7a4d55698 100644 --- a/libcxx/include/filesystem +++ b/libcxx/include/filesystem @@ -625,7 +625,7 @@ struct __is_pathable_char_array<_Source, _ECharT*, _UPtr, true> static _ECharT __first_or_null(const _ECharT* __b) { return *__b; } }; -template <class _Iter, bool _IsIt = __is_input_iterator<_Iter>::value, +template <class _Iter, bool _IsIt = __is_cpp17_input_iterator<_Iter>::value, class = void> struct __is_pathable_iter : false_type {}; @@ -708,14 +708,14 @@ template <> struct _PathCVT<char> { template <class _Iter> - static typename enable_if<__is_exactly_input_iterator<_Iter>::value>::type + static typename enable_if<__is_exactly_cpp17_input_iterator<_Iter>::value>::type __append_range(string& __dest, _Iter __b, _Iter __e) { for (; __b != __e; ++__b) __dest.push_back(*__b); } template <class _Iter> - static typename enable_if<__is_forward_iterator<_Iter>::value>::type + static typename enable_if<__is_cpp17_forward_iterator<_Iter>::value>::type __append_range(string& __dest, _Iter __b, _Iter __e) { __dest.__append_forward_unsafe(__b, __e); } diff --git a/libcxx/include/forward_list b/libcxx/include/forward_list index 29dc6615800..781cbb3e125 100644 --- a/libcxx/include/forward_list +++ b/libcxx/include/forward_list @@ -670,13 +670,13 @@ public: template <class _InputIterator> forward_list(_InputIterator __f, _InputIterator __l, typename enable_if< - __is_input_iterator<_InputIterator>::value + __is_cpp17_input_iterator<_InputIterator>::value >::type* = nullptr); template <class _InputIterator> forward_list(_InputIterator __f, _InputIterator __l, const allocator_type& __a, typename enable_if< - __is_input_iterator<_InputIterator>::value + __is_cpp17_input_iterator<_InputIterator>::value >::type* = nullptr); forward_list(const forward_list& __x); forward_list(const forward_list& __x, const allocator_type& __a); @@ -711,7 +711,7 @@ public: template <class _InputIterator> typename enable_if < - __is_input_iterator<_InputIterator>::value, + __is_cpp17_input_iterator<_InputIterator>::value, void >::type assign(_InputIterator __f, _InputIterator __l); @@ -792,7 +792,7 @@ public: _LIBCPP_INLINE_VISIBILITY typename enable_if < - __is_input_iterator<_InputIterator>::value, + __is_cpp17_input_iterator<_InputIterator>::value, iterator >::type insert_after(const_iterator __p, _InputIterator __f, _InputIterator __l); @@ -950,7 +950,7 @@ template <class _Tp, class _Alloc> template <class _InputIterator> forward_list<_Tp, _Alloc>::forward_list(_InputIterator __f, _InputIterator __l, typename enable_if< - __is_input_iterator<_InputIterator>::value + __is_cpp17_input_iterator<_InputIterator>::value >::type*) { insert_after(cbefore_begin(), __f, __l); @@ -961,7 +961,7 @@ template <class _InputIterator> forward_list<_Tp, _Alloc>::forward_list(_InputIterator __f, _InputIterator __l, const allocator_type& __a, typename enable_if< - __is_input_iterator<_InputIterator>::value + __is_cpp17_input_iterator<_InputIterator>::value >::type*) : base(__a) { @@ -1074,7 +1074,7 @@ template <class _Tp, class _Alloc> template <class _InputIterator> typename enable_if < - __is_input_iterator<_InputIterator>::value, + __is_cpp17_input_iterator<_InputIterator>::value, void >::type forward_list<_Tp, _Alloc>::assign(_InputIterator __f, _InputIterator __l) @@ -1270,7 +1270,7 @@ template <class _Tp, class _Alloc> template <class _InputIterator> typename enable_if < - __is_input_iterator<_InputIterator>::value, + __is_cpp17_input_iterator<_InputIterator>::value, typename forward_list<_Tp, _Alloc>::iterator >::type forward_list<_Tp, _Alloc>::insert_after(const_iterator __p, diff --git a/libcxx/include/iterator b/libcxx/include/iterator index 13329e1473d..57dd055b4ac 100644 --- a/libcxx/include/iterator +++ b/libcxx/include/iterator @@ -580,24 +580,28 @@ template <class _Tp, class _Up> struct __has_iterator_category_convertible_to<_Tp, _Up, false> : public false_type {}; template <class _Tp> -struct __is_input_iterator : public __has_iterator_category_convertible_to<_Tp, input_iterator_tag> {}; +struct __is_cpp17_input_iterator : public __has_iterator_category_convertible_to<_Tp, input_iterator_tag> {}; template <class _Tp> -struct __is_forward_iterator : public __has_iterator_category_convertible_to<_Tp, forward_iterator_tag> {}; +struct __is_cpp17_forward_iterator : public __has_iterator_category_convertible_to<_Tp, forward_iterator_tag> {}; template <class _Tp> -struct __is_bidirectional_iterator : public __has_iterator_category_convertible_to<_Tp, bidirectional_iterator_tag> {}; +struct __is_cpp17_bidirectional_iterator : public __has_iterator_category_convertible_to<_Tp, bidirectional_iterator_tag> {}; template <class _Tp> -struct __is_random_access_iterator : public __has_iterator_category_convertible_to<_Tp, random_access_iterator_tag> {}; +struct __is_cpp17_random_access_iterator : public __has_iterator_category_convertible_to<_Tp, random_access_iterator_tag> {}; #if _LIBCPP_STD_VER > 17 template <class _Tp> -struct __is_contiguous_iterator : public __has_iterator_category_convertible_to<_Tp, contiguous_iterator_tag> {}; +struct __is_cpp17_contiguous_iterator : public __has_iterator_category_convertible_to<_Tp, contiguous_iterator_tag> {}; +#else +template <class _Tp> +struct __is_cpp17_contiguous_iterator : public false_type {}; #endif + template <class _Tp> -struct __is_exactly_input_iterator +struct __is_exactly_cpp17_input_iterator : public integral_constant<bool, __has_iterator_category_convertible_to<_Tp, input_iterator_tag>::value && !__has_iterator_category_convertible_to<_Tp, forward_iterator_tag>::value> {}; @@ -664,7 +668,7 @@ inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14 void advance(_InputIter& __i, typename iterator_traits<_InputIter>::difference_type __n) { - _LIBCPP_ASSERT(__n >= 0 || __is_bidirectional_iterator<_InputIter>::value, + _LIBCPP_ASSERT(__n >= 0 || __is_cpp17_bidirectional_iterator<_InputIter>::value, "Attempt to advance(it, -n) on a non-bidi iterator"); __advance(__i, __n, typename iterator_traits<_InputIter>::iterator_category()); } @@ -700,13 +704,13 @@ template <class _InputIter> inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14 typename enable_if < - __is_input_iterator<_InputIter>::value, + __is_cpp17_input_iterator<_InputIter>::value, _InputIter >::type next(_InputIter __x, typename iterator_traits<_InputIter>::difference_type __n = 1) { - _LIBCPP_ASSERT(__n >= 0 || __is_bidirectional_iterator<_InputIter>::value, + _LIBCPP_ASSERT(__n >= 0 || __is_cpp17_bidirectional_iterator<_InputIter>::value, "Attempt to next(it, -n) on a non-bidi iterator"); _VSTD::advance(__x, __n); @@ -717,13 +721,13 @@ template <class _InputIter> inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14 typename enable_if < - __is_input_iterator<_InputIter>::value, + __is_cpp17_input_iterator<_InputIter>::value, _InputIter >::type prev(_InputIter __x, typename iterator_traits<_InputIter>::difference_type __n = 1) { - _LIBCPP_ASSERT(__n <= 0 || __is_bidirectional_iterator<_InputIter>::value, + _LIBCPP_ASSERT(__n <= 0 || __is_cpp17_bidirectional_iterator<_InputIter>::value, "Attempt to prev(it, +n) on a non-bidi iterator"); _VSTD::advance(__x, -__n); return __x; diff --git a/libcxx/include/list b/libcxx/include/list index 02d41644be3..cf131a1f76b 100644 --- a/libcxx/include/list +++ b/libcxx/include/list @@ -887,10 +887,10 @@ public: list(size_type __n, const value_type& __x, const allocator_type& __a); template <class _InpIter> list(_InpIter __f, _InpIter __l, - typename enable_if<__is_input_iterator<_InpIter>::value>::type* = 0); + typename enable_if<__is_cpp17_input_iterator<_InpIter>::value>::type* = 0); template <class _InpIter> list(_InpIter __f, _InpIter __l, const allocator_type& __a, - typename enable_if<__is_input_iterator<_InpIter>::value>::type* = 0); + typename enable_if<__is_cpp17_input_iterator<_InpIter>::value>::type* = 0); list(const list& __c); list(const list& __c, const allocator_type& __a); @@ -922,7 +922,7 @@ public: template <class _InpIter> void assign(_InpIter __f, _InpIter __l, - typename enable_if<__is_input_iterator<_InpIter>::value>::type* = 0); + typename enable_if<__is_cpp17_input_iterator<_InpIter>::value>::type* = 0); void assign(size_type __n, const value_type& __x); _LIBCPP_INLINE_VISIBILITY @@ -1039,7 +1039,7 @@ public: iterator insert(const_iterator __p, size_type __n, const value_type& __x); template <class _InpIter> iterator insert(const_iterator __p, _InpIter __f, _InpIter __l, - typename enable_if<__is_input_iterator<_InpIter>::value>::type* = 0); + typename enable_if<__is_cpp17_input_iterator<_InpIter>::value>::type* = 0); _LIBCPP_INLINE_VISIBILITY void swap(list& __c) @@ -1252,7 +1252,7 @@ list<_Tp, _Alloc>::list(size_type __n, const value_type& __x, const allocator_ty template <class _Tp, class _Alloc> template <class _InpIter> list<_Tp, _Alloc>::list(_InpIter __f, _InpIter __l, - typename enable_if<__is_input_iterator<_InpIter>::value>::type*) + typename enable_if<__is_cpp17_input_iterator<_InpIter>::value>::type*) { #if _LIBCPP_DEBUG_LEVEL >= 2 __get_db()->__insert_c(this); @@ -1264,7 +1264,7 @@ list<_Tp, _Alloc>::list(_InpIter __f, _InpIter __l, template <class _Tp, class _Alloc> template <class _InpIter> list<_Tp, _Alloc>::list(_InpIter __f, _InpIter __l, const allocator_type& __a, - typename enable_if<__is_input_iterator<_InpIter>::value>::type*) + typename enable_if<__is_cpp17_input_iterator<_InpIter>::value>::type*) : base(__a) { #if _LIBCPP_DEBUG_LEVEL >= 2 @@ -1403,7 +1403,7 @@ template <class _Tp, class _Alloc> template <class _InpIter> void list<_Tp, _Alloc>::assign(_InpIter __f, _InpIter __l, - typename enable_if<__is_input_iterator<_InpIter>::value>::type*) + typename enable_if<__is_cpp17_input_iterator<_InpIter>::value>::type*) { iterator __i = begin(); iterator __e = end(); @@ -1532,7 +1532,7 @@ template <class _Tp, class _Alloc> template <class _InpIter> typename list<_Tp, _Alloc>::iterator list<_Tp, _Alloc>::insert(const_iterator __p, _InpIter __f, _InpIter __l, - typename enable_if<__is_input_iterator<_InpIter>::value>::type*) + typename enable_if<__is_cpp17_input_iterator<_InpIter>::value>::type*) { #if _LIBCPP_DEBUG_LEVEL >= 2 _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this, diff --git a/libcxx/include/queue b/libcxx/include/queue index 97ec6f633c5..33c25e0dfc1 100644 --- a/libcxx/include/queue +++ b/libcxx/include/queue @@ -562,7 +562,7 @@ priority_queue(_Compare, _Container) template<class _InputIterator, class _Compare = less<typename iterator_traits<_InputIterator>::value_type>, class _Container = vector<typename iterator_traits<_InputIterator>::value_type>, - class = typename enable_if< __is_input_iterator<_InputIterator>::value, nullptr_t>::type, + class = typename enable_if< __is_cpp17_input_iterator<_InputIterator>::value, nullptr_t>::type, class = typename enable_if<!__is_allocator<_Compare>::value, nullptr_t>::type, class = typename enable_if<!__is_allocator<_Container>::value, nullptr_t>::type > diff --git a/libcxx/include/regex b/libcxx/include/regex index d6f5585bb92..5ac9e325e13 100644 --- a/libcxx/include/regex +++ b/libcxx/include/regex @@ -2625,8 +2625,8 @@ public: _LIBCPP_INLINE_VISIBILITY typename enable_if < - __is_input_iterator <_InputIterator>::value && - !__is_forward_iterator<_InputIterator>::value, + __is_cpp17_input_iterator <_InputIterator>::value && + !__is_cpp17_forward_iterator<_InputIterator>::value, basic_regex& >::type assign(_InputIterator __first, _InputIterator __last, @@ -2652,7 +2652,7 @@ public: _LIBCPP_INLINE_VISIBILITY typename enable_if < - __is_forward_iterator<_ForwardIterator>::value, + __is_cpp17_forward_iterator<_ForwardIterator>::value, basic_regex& >::type assign(_ForwardIterator __first, _ForwardIterator __last, @@ -2952,7 +2952,7 @@ private: #ifndef _LIBCPP_HAS_NO_DEDUCTION_GUIDES template <class _ForwardIterator, - class = typename enable_if<__is_forward_iterator<_ForwardIterator>::value, nullptr_t>::type + class = typename enable_if<__is_cpp17_forward_iterator<_ForwardIterator>::value, nullptr_t>::type > basic_regex(_ForwardIterator, _ForwardIterator, regex_constants::syntax_option_type = regex_constants::ECMAScript) diff --git a/libcxx/include/string b/libcxx/include/string index 024467a7cd2..c16dbedc51c 100644 --- a/libcxx/include/string +++ b/libcxx/include/string @@ -625,7 +625,7 @@ struct __libcpp_string_gets_noexcept_iterator_impl : public true_type {}; template <class _Iter> struct __libcpp_string_gets_noexcept_iterator_impl : public false_type {}; #else -template <class _Iter, bool = __is_forward_iterator<_Iter>::value> +template <class _Iter, bool = __is_cpp17_forward_iterator<_Iter>::value> struct __libcpp_string_gets_noexcept_iterator_impl : public _LIBCPP_BOOL_CONSTANT(( noexcept(++(declval<_Iter&>())) && is_nothrow_assignable<_Iter&, _Iter>::value && @@ -856,10 +856,10 @@ public: _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS explicit basic_string(const _Tp& __t, const allocator_type& __a); - template<class _InputIterator, class = typename enable_if<__is_input_iterator<_InputIterator>::value>::type> + template<class _InputIterator, class = typename enable_if<__is_cpp17_input_iterator<_InputIterator>::value>::type> _LIBCPP_INLINE_VISIBILITY basic_string(_InputIterator __first, _InputIterator __last); - template<class _InputIterator, class = typename enable_if<__is_input_iterator<_InputIterator>::value>::type> + template<class _InputIterator, class = typename enable_if<__is_cpp17_input_iterator<_InputIterator>::value>::type> _LIBCPP_INLINE_VISIBILITY basic_string(_InputIterator __first, _InputIterator __last, const allocator_type& __a); #ifndef _LIBCPP_CXX03_LANG @@ -1023,7 +1023,7 @@ public: _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS typename enable_if < - __is_exactly_input_iterator<_InputIterator>::value + __is_exactly_cpp17_input_iterator<_InputIterator>::value || !__libcpp_string_gets_noexcept_iterator<_InputIterator>::value, basic_string& >::type @@ -1037,7 +1037,7 @@ public: _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS typename enable_if < - __is_forward_iterator<_ForwardIterator>::value + __is_cpp17_forward_iterator<_ForwardIterator>::value && __libcpp_string_gets_noexcept_iterator<_ForwardIterator>::value, basic_string& >::type @@ -1091,7 +1091,7 @@ public: _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS typename enable_if < - __is_exactly_input_iterator<_InputIterator>::value + __is_exactly_cpp17_input_iterator<_InputIterator>::value || !__libcpp_string_gets_noexcept_iterator<_InputIterator>::value, basic_string& >::type @@ -1100,7 +1100,7 @@ public: _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS typename enable_if < - __is_forward_iterator<_ForwardIterator>::value + __is_cpp17_forward_iterator<_ForwardIterator>::value && __libcpp_string_gets_noexcept_iterator<_ForwardIterator>::value, basic_string& >::type @@ -1142,7 +1142,7 @@ public: _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS typename enable_if < - __is_exactly_input_iterator<_InputIterator>::value + __is_exactly_cpp17_input_iterator<_InputIterator>::value || !__libcpp_string_gets_noexcept_iterator<_InputIterator>::value, iterator >::type @@ -1151,7 +1151,7 @@ public: _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS typename enable_if < - __is_forward_iterator<_ForwardIterator>::value + __is_cpp17_forward_iterator<_ForwardIterator>::value && __libcpp_string_gets_noexcept_iterator<_ForwardIterator>::value, iterator >::type @@ -1213,7 +1213,7 @@ public: _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS typename enable_if < - __is_input_iterator<_InputIterator>::value, + __is_cpp17_input_iterator<_InputIterator>::value, basic_string& >::type replace(const_iterator __i1, const_iterator __i2, _InputIterator __j1, _InputIterator __j2); @@ -1547,7 +1547,7 @@ private: inline typename enable_if < - __is_exactly_input_iterator<_InputIterator>::value, + __is_exactly_cpp17_input_iterator<_InputIterator>::value, void >::type __init(_InputIterator __first, _InputIterator __last); @@ -1556,7 +1556,7 @@ private: inline typename enable_if < - __is_forward_iterator<_ForwardIterator>::value, + __is_cpp17_forward_iterator<_ForwardIterator>::value, void >::type __init(_ForwardIterator __first, _ForwardIterator __last); @@ -1652,7 +1652,7 @@ private: template<class _InputIterator, class _CharT = typename iterator_traits<_InputIterator>::value_type, class _Allocator = allocator<_CharT>, - class = typename enable_if<__is_input_iterator<_InputIterator>::value, void>::type, + class = typename enable_if<__is_cpp17_input_iterator<_InputIterator>::value, void>::type, class = typename enable_if<__is_allocator<_Allocator>::value, void>::type > basic_string(_InputIterator, _InputIterator, _Allocator = _Allocator()) @@ -2012,7 +2012,7 @@ template <class _CharT, class _Traits, class _Allocator> template <class _InputIterator> typename enable_if < - __is_exactly_input_iterator<_InputIterator>::value, + __is_exactly_cpp17_input_iterator<_InputIterator>::value, void >::type basic_string<_CharT, _Traits, _Allocator>::__init(_InputIterator __first, _InputIterator __last) @@ -2039,7 +2039,7 @@ template <class _CharT, class _Traits, class _Allocator> template <class _ForwardIterator> typename enable_if < - __is_forward_iterator<_ForwardIterator>::value, + __is_cpp17_forward_iterator<_ForwardIterator>::value, void >::type basic_string<_CharT, _Traits, _Allocator>::__init(_ForwardIterator __first, _ForwardIterator __last) @@ -2312,7 +2312,7 @@ template <class _CharT, class _Traits, class _Allocator> template<class _InputIterator> typename enable_if < - __is_exactly_input_iterator <_InputIterator>::value + __is_exactly_cpp17_input_iterator <_InputIterator>::value || !__libcpp_string_gets_noexcept_iterator<_InputIterator>::value, basic_string<_CharT, _Traits, _Allocator>& >::type @@ -2327,7 +2327,7 @@ template <class _CharT, class _Traits, class _Allocator> template<class _ForwardIterator> typename enable_if < - __is_forward_iterator<_ForwardIterator>::value + __is_cpp17_forward_iterator<_ForwardIterator>::value && __libcpp_string_gets_noexcept_iterator<_ForwardIterator>::value, basic_string<_CharT, _Traits, _Allocator>& >::type @@ -2501,7 +2501,7 @@ basic_string<_CharT, _Traits, _Allocator>& basic_string<_CharT, _Traits, _Allocator>::__append_forward_unsafe( _ForwardIterator __first, _ForwardIterator __last) { - static_assert(__is_forward_iterator<_ForwardIterator>::value, + static_assert(__is_cpp17_forward_iterator<_ForwardIterator>::value, "function requires a ForwardIterator"); size_type __sz = size(); size_type __cap = capacity(); @@ -2640,7 +2640,7 @@ template <class _CharT, class _Traits, class _Allocator> template<class _InputIterator> typename enable_if < - __is_exactly_input_iterator<_InputIterator>::value + __is_exactly_cpp17_input_iterator<_InputIterator>::value || !__libcpp_string_gets_noexcept_iterator<_InputIterator>::value, typename basic_string<_CharT, _Traits, _Allocator>::iterator >::type @@ -2659,7 +2659,7 @@ template <class _CharT, class _Traits, class _Allocator> template<class _ForwardIterator> typename enable_if < - __is_forward_iterator<_ForwardIterator>::value + __is_cpp17_forward_iterator<_ForwardIterator>::value && __libcpp_string_gets_noexcept_iterator<_ForwardIterator>::value, typename basic_string<_CharT, _Traits, _Allocator>::iterator >::type @@ -2886,7 +2886,7 @@ template <class _CharT, class _Traits, class _Allocator> template<class _InputIterator> typename enable_if < - __is_input_iterator<_InputIterator>::value, + __is_cpp17_input_iterator<_InputIterator>::value, basic_string<_CharT, _Traits, _Allocator>& >::type basic_string<_CharT, _Traits, _Allocator>::replace(const_iterator __i1, const_iterator __i2, diff --git a/libcxx/include/vector b/libcxx/include/vector index f2bbdf28814..a8289734e12 100644 --- a/libcxx/include/vector +++ b/libcxx/include/vector @@ -518,29 +518,29 @@ public: vector(size_type __n, const value_type& __x, const allocator_type& __a); template <class _InputIterator> vector(_InputIterator __first, - typename enable_if<__is_input_iterator <_InputIterator>::value && - !__is_forward_iterator<_InputIterator>::value && + typename enable_if<__is_cpp17_input_iterator <_InputIterator>::value && + !__is_cpp17_forward_iterator<_InputIterator>::value && is_constructible< value_type, typename iterator_traits<_InputIterator>::reference>::value, _InputIterator>::type __last); template <class _InputIterator> vector(_InputIterator __first, _InputIterator __last, const allocator_type& __a, - typename enable_if<__is_input_iterator <_InputIterator>::value && - !__is_forward_iterator<_InputIterator>::value && + typename enable_if<__is_cpp17_input_iterator <_InputIterator>::value && + !__is_cpp17_forward_iterator<_InputIterator>::value && is_constructible< value_type, typename iterator_traits<_InputIterator>::reference>::value>::type* = 0); template <class _ForwardIterator> vector(_ForwardIterator __first, - typename enable_if<__is_forward_iterator<_ForwardIterator>::value && + typename enable_if<__is_cpp17_forward_iterator<_ForwardIterator>::value && is_constructible< value_type, typename iterator_traits<_ForwardIterator>::reference>::value, _ForwardIterator>::type __last); template <class _ForwardIterator> vector(_ForwardIterator __first, _ForwardIterator __last, const allocator_type& __a, - typename enable_if<__is_forward_iterator<_ForwardIterator>::value && + typename enable_if<__is_cpp17_forward_iterator<_ForwardIterator>::value && is_constructible< value_type, typename iterator_traits<_ForwardIterator>::reference>::value>::type* = 0); @@ -589,8 +589,8 @@ public: template <class _InputIterator> typename enable_if < - __is_input_iterator <_InputIterator>::value && - !__is_forward_iterator<_InputIterator>::value && + __is_cpp17_input_iterator <_InputIterator>::value && + !__is_cpp17_forward_iterator<_InputIterator>::value && is_constructible< value_type, typename iterator_traits<_InputIterator>::reference>::value, @@ -600,7 +600,7 @@ public: template <class _ForwardIterator> typename enable_if < - __is_forward_iterator<_ForwardIterator>::value && + __is_cpp17_forward_iterator<_ForwardIterator>::value && is_constructible< value_type, typename iterator_traits<_ForwardIterator>::reference>::value, @@ -737,8 +737,8 @@ public: template <class _InputIterator> typename enable_if < - __is_input_iterator <_InputIterator>::value && - !__is_forward_iterator<_InputIterator>::value && + __is_cpp17_input_iterator <_InputIterator>::value && + !__is_cpp17_forward_iterator<_InputIterator>::value && is_constructible< value_type, typename iterator_traits<_InputIterator>::reference>::value, @@ -748,7 +748,7 @@ public: template <class _ForwardIterator> typename enable_if < - __is_forward_iterator<_ForwardIterator>::value && + __is_cpp17_forward_iterator<_ForwardIterator>::value && is_constructible< value_type, typename iterator_traits<_ForwardIterator>::reference>::value, @@ -808,7 +808,7 @@ private: template <class _ForwardIterator> typename enable_if < - __is_forward_iterator<_ForwardIterator>::value, + __is_cpp17_forward_iterator<_ForwardIterator>::value, void >::type __construct_at_end(_ForwardIterator __first, _ForwardIterator __last, size_type __n); @@ -1067,7 +1067,7 @@ template <class _Tp, class _Allocator> template <class _ForwardIterator> typename enable_if < - __is_forward_iterator<_ForwardIterator>::value, + __is_cpp17_forward_iterator<_ForwardIterator>::value, void >::type vector<_Tp, _Allocator>::__construct_at_end(_ForwardIterator __first, _ForwardIterator __last, size_type __n) @@ -1173,8 +1173,8 @@ vector<_Tp, _Allocator>::vector(size_type __n, const value_type& __x, const allo template <class _Tp, class _Allocator> template <class _InputIterator> vector<_Tp, _Allocator>::vector(_InputIterator __first, - typename enable_if<__is_input_iterator <_InputIterator>::value && - !__is_forward_iterator<_InputIterator>::value && + typename enable_if<__is_cpp17_input_iterator <_InputIterator>::value && + !__is_cpp17_forward_iterator<_InputIterator>::value && is_constructible< value_type, typename iterator_traits<_InputIterator>::reference>::value, @@ -1190,8 +1190,8 @@ vector<_Tp, _Allocator>::vector(_InputIterator __first, template <class _Tp, class _Allocator> template <class _InputIterator> vector<_Tp, _Allocator>::vector(_InputIterator __first, _InputIterator __last, const allocator_type& __a, - typename enable_if<__is_input_iterator <_InputIterator>::value && - !__is_forward_iterator<_InputIterator>::value && + typename enable_if<__is_cpp17_input_iterator <_InputIterator>::value && + !__is_cpp17_forward_iterator<_InputIterator>::value && is_constructible< value_type, typename iterator_traits<_InputIterator>::reference>::value>::type*) @@ -1207,7 +1207,7 @@ vector<_Tp, _Allocator>::vector(_InputIterator __first, _InputIterator __last, c template <class _Tp, class _Allocator> template <class _ForwardIterator> vector<_Tp, _Allocator>::vector(_ForwardIterator __first, - typename enable_if<__is_forward_iterator<_ForwardIterator>::value && + typename enable_if<__is_cpp17_forward_iterator<_ForwardIterator>::value && is_constructible< value_type, typename iterator_traits<_ForwardIterator>::reference>::value, @@ -1227,7 +1227,7 @@ vector<_Tp, _Allocator>::vector(_ForwardIterator __first, template <class _Tp, class _Allocator> template <class _ForwardIterator> vector<_Tp, _Allocator>::vector(_ForwardIterator __first, _ForwardIterator __last, const allocator_type& __a, - typename enable_if<__is_forward_iterator<_ForwardIterator>::value && + typename enable_if<__is_cpp17_forward_iterator<_ForwardIterator>::value && is_constructible< value_type, typename iterator_traits<_ForwardIterator>::reference>::value>::type*) @@ -1410,8 +1410,8 @@ template <class _Tp, class _Allocator> template <class _InputIterator> typename enable_if < - __is_input_iterator <_InputIterator>::value && - !__is_forward_iterator<_InputIterator>::value && + __is_cpp17_input_iterator <_InputIterator>::value && + !__is_cpp17_forward_iterator<_InputIterator>::value && is_constructible< _Tp, typename iterator_traits<_InputIterator>::reference>::value, @@ -1428,7 +1428,7 @@ template <class _Tp, class _Allocator> template <class _ForwardIterator> typename enable_if < - __is_forward_iterator<_ForwardIterator>::value && + __is_cpp17_forward_iterator<_ForwardIterator>::value && is_constructible< _Tp, typename iterator_traits<_ForwardIterator>::reference>::value, @@ -1911,8 +1911,8 @@ template <class _Tp, class _Allocator> template <class _InputIterator> typename enable_if < - __is_input_iterator <_InputIterator>::value && - !__is_forward_iterator<_InputIterator>::value && + __is_cpp17_input_iterator <_InputIterator>::value && + !__is_cpp17_forward_iterator<_InputIterator>::value && is_constructible< _Tp, typename iterator_traits<_InputIterator>::reference>::value, @@ -1965,7 +1965,7 @@ template <class _Tp, class _Allocator> template <class _ForwardIterator> typename enable_if < - __is_forward_iterator<_ForwardIterator>::value && + __is_cpp17_forward_iterator<_ForwardIterator>::value && is_constructible< _Tp, typename iterator_traits<_ForwardIterator>::reference>::value, @@ -2231,18 +2231,18 @@ public: vector(size_type __n, const value_type& __v, const allocator_type& __a); template <class _InputIterator> vector(_InputIterator __first, _InputIterator __last, - typename enable_if<__is_input_iterator <_InputIterator>::value && - !__is_forward_iterator<_InputIterator>::value>::type* = 0); + typename enable_if<__is_cpp17_input_iterator <_InputIterator>::value && + !__is_cpp17_forward_iterator<_InputIterator>::value>::type* = 0); template <class _InputIterator> vector(_InputIterator __first, _InputIterator __last, const allocator_type& __a, - typename enable_if<__is_input_iterator <_InputIterator>::value && - !__is_forward_iterator<_InputIterator>::value>::type* = 0); + typename enable_if<__is_cpp17_input_iterator <_InputIterator>::value && + !__is_cpp17_forward_iterator<_InputIterator>::value>::type* = 0); template <class _ForwardIterator> vector(_ForwardIterator __first, _ForwardIterator __last, - typename enable_if<__is_forward_iterator<_ForwardIterator>::value>::type* = 0); + typename enable_if<__is_cpp17_forward_iterator<_ForwardIterator>::value>::type* = 0); template <class _ForwardIterator> vector(_ForwardIterator __first, _ForwardIterator __last, const allocator_type& __a, - typename enable_if<__is_forward_iterator<_ForwardIterator>::value>::type* = 0); + typename enable_if<__is_cpp17_forward_iterator<_ForwardIterator>::value>::type* = 0); vector(const vector& __v); vector(const vector& __v, const allocator_type& __a); @@ -2273,15 +2273,15 @@ public: template <class _InputIterator> typename enable_if < - __is_input_iterator<_InputIterator>::value && - !__is_forward_iterator<_InputIterator>::value, + __is_cpp17_input_iterator<_InputIterator>::value && + !__is_cpp17_forward_iterator<_InputIterator>::value, void >::type assign(_InputIterator __first, _InputIterator __last); template <class _ForwardIterator> typename enable_if < - __is_forward_iterator<_ForwardIterator>::value, + __is_cpp17_forward_iterator<_ForwardIterator>::value, void >::type assign(_ForwardIterator __first, _ForwardIterator __last); @@ -2389,15 +2389,15 @@ public: template <class _InputIterator> typename enable_if < - __is_input_iterator <_InputIterator>::value && - !__is_forward_iterator<_InputIterator>::value, + __is_cpp17_input_iterator <_InputIterator>::value && + !__is_cpp17_forward_iterator<_InputIterator>::value, iterator >::type insert(const_iterator __position, _InputIterator __first, _InputIterator __last); template <class _ForwardIterator> typename enable_if < - __is_forward_iterator<_ForwardIterator>::value, + __is_cpp17_forward_iterator<_ForwardIterator>::value, iterator >::type insert(const_iterator __position, _ForwardIterator __first, _ForwardIterator __last); @@ -2440,7 +2440,7 @@ private: template <class _ForwardIterator> typename enable_if < - __is_forward_iterator<_ForwardIterator>::value, + __is_cpp17_forward_iterator<_ForwardIterator>::value, void >::type __construct_at_end(_ForwardIterator __first, _ForwardIterator __last); @@ -2599,7 +2599,7 @@ template <class _Allocator> template <class _ForwardIterator> typename enable_if < - __is_forward_iterator<_ForwardIterator>::value, + __is_cpp17_forward_iterator<_ForwardIterator>::value, void >::type vector<bool, _Allocator>::__construct_at_end(_ForwardIterator __first, _ForwardIterator __last) @@ -2697,8 +2697,8 @@ vector<bool, _Allocator>::vector(size_type __n, const value_type& __x, const all template <class _Allocator> template <class _InputIterator> vector<bool, _Allocator>::vector(_InputIterator __first, _InputIterator __last, - typename enable_if<__is_input_iterator <_InputIterator>::value && - !__is_forward_iterator<_InputIterator>::value>::type*) + typename enable_if<__is_cpp17_input_iterator <_InputIterator>::value && + !__is_cpp17_forward_iterator<_InputIterator>::value>::type*) : __begin_(nullptr), __size_(0), __cap_alloc_(0) @@ -2724,8 +2724,8 @@ vector<bool, _Allocator>::vector(_InputIterator __first, _InputIterator __last, template <class _Allocator> template <class _InputIterator> vector<bool, _Allocator>::vector(_InputIterator __first, _InputIterator __last, const allocator_type& __a, - typename enable_if<__is_input_iterator <_InputIterator>::value && - !__is_forward_iterator<_InputIterator>::value>::type*) + typename enable_if<__is_cpp17_input_iterator <_InputIterator>::value && + !__is_cpp17_forward_iterator<_InputIterator>::value>::type*) : __begin_(nullptr), __size_(0), __cap_alloc_(0, static_cast<__storage_allocator>(__a)) @@ -2751,7 +2751,7 @@ vector<bool, _Allocator>::vector(_InputIterator __first, _InputIterator __last, template <class _Allocator> template <class _ForwardIterator> vector<bool, _Allocator>::vector(_ForwardIterator __first, _ForwardIterator __last, - typename enable_if<__is_forward_iterator<_ForwardIterator>::value>::type*) + typename enable_if<__is_cpp17_forward_iterator<_ForwardIterator>::value>::type*) : __begin_(nullptr), __size_(0), __cap_alloc_(0) @@ -2767,7 +2767,7 @@ vector<bool, _Allocator>::vector(_ForwardIterator __first, _ForwardIterator __la template <class _Allocator> template <class _ForwardIterator> vector<bool, _Allocator>::vector(_ForwardIterator __first, _ForwardIterator __last, const allocator_type& __a, - typename enable_if<__is_forward_iterator<_ForwardIterator>::value>::type*) + typename enable_if<__is_cpp17_forward_iterator<_ForwardIterator>::value>::type*) : __begin_(nullptr), __size_(0), __cap_alloc_(0, static_cast<__storage_allocator>(__a)) @@ -2968,8 +2968,8 @@ template <class _Allocator> template <class _InputIterator> typename enable_if < - __is_input_iterator<_InputIterator>::value && - !__is_forward_iterator<_InputIterator>::value, + __is_cpp17_input_iterator<_InputIterator>::value && + !__is_cpp17_forward_iterator<_InputIterator>::value, void >::type vector<bool, _Allocator>::assign(_InputIterator __first, _InputIterator __last) @@ -2983,7 +2983,7 @@ template <class _Allocator> template <class _ForwardIterator> typename enable_if < - __is_forward_iterator<_ForwardIterator>::value, + __is_cpp17_forward_iterator<_ForwardIterator>::value, void >::type vector<bool, _Allocator>::assign(_ForwardIterator __first, _ForwardIterator __last) @@ -3120,8 +3120,8 @@ template <class _Allocator> template <class _InputIterator> typename enable_if < - __is_input_iterator <_InputIterator>::value && - !__is_forward_iterator<_InputIterator>::value, + __is_cpp17_input_iterator <_InputIterator>::value && + !__is_cpp17_forward_iterator<_InputIterator>::value, typename vector<bool, _Allocator>::iterator >::type vector<bool, _Allocator>::insert(const_iterator __position, _InputIterator __first, _InputIterator __last) @@ -3165,7 +3165,7 @@ template <class _Allocator> template <class _ForwardIterator> typename enable_if < - __is_forward_iterator<_ForwardIterator>::value, + __is_cpp17_forward_iterator<_ForwardIterator>::value, typename vector<bool, _Allocator>::iterator >::type vector<bool, _Allocator>::insert(const_iterator __position, _ForwardIterator __first, _ForwardIterator __last) diff --git a/libcxx/test/libcxx/iterators/trivial_iterators.pass.cpp b/libcxx/test/libcxx/iterators/trivial_iterators.pass.cpp index 0618731ce75..3b16a78e47b 100644 --- a/libcxx/test/libcxx/iterators/trivial_iterators.pass.cpp +++ b/libcxx/test/libcxx/iterators/trivial_iterators.pass.cpp @@ -126,41 +126,41 @@ int main(int, char**) // Iterator classification - static_assert(( std::__is_input_iterator <char *>::value), "" ); - static_assert(( std::__is_forward_iterator <char *>::value), "" ); - static_assert(( std::__is_bidirectional_iterator<char *>::value), "" ); - static_assert(( std::__is_random_access_iterator<char *>::value), "" ); - static_assert((!std::__is_exactly_input_iterator<char *>::value), "" ); - - static_assert(( std::__is_input_iterator <input_iterator<char *> >::value), "" ); - static_assert((!std::__is_forward_iterator <input_iterator<char *> >::value), "" ); - static_assert((!std::__is_bidirectional_iterator<input_iterator<char *> >::value), "" ); - static_assert((!std::__is_random_access_iterator<input_iterator<char *> >::value), "" ); - static_assert(( std::__is_exactly_input_iterator<input_iterator<char *> >::value), "" ); - - static_assert(( std::__is_input_iterator <forward_iterator<char *> >::value), "" ); - static_assert(( std::__is_forward_iterator <forward_iterator<char *> >::value), "" ); - static_assert((!std::__is_bidirectional_iterator<forward_iterator<char *> >::value), "" ); - static_assert((!std::__is_random_access_iterator<forward_iterator<char *> >::value), "" ); - static_assert((!std::__is_exactly_input_iterator<forward_iterator<char *> >::value), "" ); - - static_assert(( std::__is_input_iterator <bidirectional_iterator<char *> >::value), "" ); - static_assert(( std::__is_forward_iterator <bidirectional_iterator<char *> >::value), "" ); - static_assert(( std::__is_bidirectional_iterator<bidirectional_iterator<char *> >::value), "" ); - static_assert((!std::__is_random_access_iterator<bidirectional_iterator<char *> >::value), "" ); - static_assert((!std::__is_exactly_input_iterator<bidirectional_iterator<char *> >::value), "" ); - - static_assert(( std::__is_input_iterator <random_access_iterator<char *> >::value), "" ); - static_assert(( std::__is_forward_iterator <random_access_iterator<char *> >::value), "" ); - static_assert(( std::__is_bidirectional_iterator<random_access_iterator<char *> >::value), "" ); - static_assert(( std::__is_random_access_iterator<random_access_iterator<char *> >::value), "" ); - static_assert((!std::__is_exactly_input_iterator<random_access_iterator<char *> >::value), "" ); - - static_assert(( std::__is_input_iterator <my_input_iterator<char *> >::value), "" ); - static_assert((!std::__is_forward_iterator <my_input_iterator<char *> >::value), "" ); - static_assert((!std::__is_bidirectional_iterator<my_input_iterator<char *> >::value), "" ); - static_assert((!std::__is_random_access_iterator<my_input_iterator<char *> >::value), "" ); - static_assert(( std::__is_exactly_input_iterator<my_input_iterator<char *> >::value), "" ); + static_assert(( std::__is_cpp17_input_iterator <char *>::value), "" ); + static_assert(( std::__is_cpp17_forward_iterator <char *>::value), "" ); + static_assert(( std::__is_cpp17_bidirectional_iterator<char *>::value), "" ); + static_assert(( std::__is_cpp17_random_access_iterator<char *>::value), "" ); + static_assert((!std::__is_exactly_cpp17_input_iterator<char *>::value), "" ); + + static_assert(( std::__is_cpp17_input_iterator <input_iterator<char *> >::value), "" ); + static_assert((!std::__is_cpp17_forward_iterator <input_iterator<char *> >::value), "" ); + static_assert((!std::__is_cpp17_bidirectional_iterator<input_iterator<char *> >::value), "" ); + static_assert((!std::__is_cpp17_random_access_iterator<input_iterator<char *> >::value), "" ); + static_assert(( std::__is_exactly_cpp17_input_iterator<input_iterator<char *> >::value), "" ); + + static_assert(( std::__is_cpp17_input_iterator <forward_iterator<char *> >::value), "" ); + static_assert(( std::__is_cpp17_forward_iterator <forward_iterator<char *> >::value), "" ); + static_assert((!std::__is_cpp17_bidirectional_iterator<forward_iterator<char *> >::value), "" ); + static_assert((!std::__is_cpp17_random_access_iterator<forward_iterator<char *> >::value), "" ); + static_assert((!std::__is_exactly_cpp17_input_iterator<forward_iterator<char *> >::value), "" ); + + static_assert(( std::__is_cpp17_input_iterator <bidirectional_iterator<char *> >::value), "" ); + static_assert(( std::__is_cpp17_forward_iterator <bidirectional_iterator<char *> >::value), "" ); + static_assert(( std::__is_cpp17_bidirectional_iterator<bidirectional_iterator<char *> >::value), "" ); + static_assert((!std::__is_cpp17_random_access_iterator<bidirectional_iterator<char *> >::value), "" ); + static_assert((!std::__is_exactly_cpp17_input_iterator<bidirectional_iterator<char *> >::value), "" ); + + static_assert(( std::__is_cpp17_input_iterator <random_access_iterator<char *> >::value), "" ); + static_assert(( std::__is_cpp17_forward_iterator <random_access_iterator<char *> >::value), "" ); + static_assert(( std::__is_cpp17_bidirectional_iterator<random_access_iterator<char *> >::value), "" ); + static_assert(( std::__is_cpp17_random_access_iterator<random_access_iterator<char *> >::value), "" ); + static_assert((!std::__is_exactly_cpp17_input_iterator<random_access_iterator<char *> >::value), "" ); + + static_assert(( std::__is_cpp17_input_iterator <my_input_iterator<char *> >::value), "" ); + static_assert((!std::__is_cpp17_forward_iterator <my_input_iterator<char *> >::value), "" ); + static_assert((!std::__is_cpp17_bidirectional_iterator<my_input_iterator<char *> >::value), "" ); + static_assert((!std::__is_cpp17_random_access_iterator<my_input_iterator<char *> >::value), "" ); + static_assert(( std::__is_exactly_cpp17_input_iterator<my_input_iterator<char *> >::value), "" ); // // iterators from libc++'s containers |