diff --git a/libcxx/include/__split_buffer b/libcxx/include/__split_buffer index f221aee074f4..d70c0a7f1667 100644 --- a/libcxx/include/__split_buffer +++ b/libcxx/include/__split_buffer @@ -116,15 +116,15 @@ public: template 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 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 template 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 template 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 15b03ec857f6..8421299c9bc8 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 7481cc21ca53..83e49f19ab98 100644 --- a/libcxx/include/algorithm +++ b/libcxx/include/algorithm @@ -1821,8 +1821,8 @@ template 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 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 831b8e4948f2..b2582f486442 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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 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 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 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 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 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 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 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 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 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 template 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 template 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 template 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 template 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(__l - __f) > __base::size()) { @@ -2252,8 +2252,8 @@ template template 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 __buf(__base::__alloc()); __buf.__construct_at_end(__f, __l); @@ -2265,8 +2265,8 @@ template template 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 __buf(__n, 0, __base::__alloc()); @@ -2279,7 +2279,7 @@ template template 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 template 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 template 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 9020a12fea18..0f7a4d556988 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 ::value, +template ::value, class = void> struct __is_pathable_iter : false_type {}; @@ -708,14 +708,14 @@ template <> struct _PathCVT { template - 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 - 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 29dc6615800e..781cbb3e1258 100644 --- a/libcxx/include/forward_list +++ b/libcxx/include/forward_list @@ -670,13 +670,13 @@ public: template forward_list(_InputIterator __f, _InputIterator __l, typename enable_if< - __is_input_iterator<_InputIterator>::value + __is_cpp17_input_iterator<_InputIterator>::value >::type* = nullptr); template 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 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 template 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 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 template 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 template 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 13329e1473d3..57dd055b4ac9 100644 --- a/libcxx/include/iterator +++ b/libcxx/include/iterator @@ -580,24 +580,28 @@ template struct __has_iterator_category_convertible_to<_Tp, _Up, false> : public false_type {}; template -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 -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 -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 -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 -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 +struct __is_cpp17_contiguous_iterator : public false_type {}; #endif + template -struct __is_exactly_input_iterator +struct __is_exactly_cpp17_input_iterator : public integral_constant::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 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 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 02d41644be33..cf131a1f76b2 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 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 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 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 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 template 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 template 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 template 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 template 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 97ec6f633c51..33c25e0dfc13 100644 --- a/libcxx/include/queue +++ b/libcxx/include/queue @@ -562,7 +562,7 @@ priority_queue(_Compare, _Container) template::value_type>, class _Container = vector::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::value, nullptr_t>::type, class = typename enable_if::value, nullptr_t>::type > diff --git a/libcxx/include/regex b/libcxx/include/regex index d6f5585bb923..5ac9e325e136 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 ::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 024467a7cd2f..c16dbedc51c0 100644 --- a/libcxx/include/string +++ b/libcxx/include/string @@ -625,7 +625,7 @@ struct __libcpp_string_gets_noexcept_iterator_impl : public true_type {}; template struct __libcpp_string_gets_noexcept_iterator_impl : public false_type {}; #else -template ::value> +template ::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::value>::type> + template::value>::type> _LIBCPP_INLINE_VISIBILITY basic_string(_InputIterator __first, _InputIterator __last); - template::value>::type> + template::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::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 template 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 template 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 template 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 template 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 template 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 template 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 template 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 f2bbdf288147..a8289734e121 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 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 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 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 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 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 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 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 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 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 template 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 template 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 template 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 template 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 template 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 template 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 template 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 template 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 template 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 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 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 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 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 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 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 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 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 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 template typename enable_if < - __is_forward_iterator<_ForwardIterator>::value, + __is_cpp17_forward_iterator<_ForwardIterator>::value, void >::type vector::__construct_at_end(_ForwardIterator __first, _ForwardIterator __last) @@ -2697,8 +2697,8 @@ vector::vector(size_type __n, const value_type& __x, const all template template vector::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::vector(_InputIterator __first, _InputIterator __last, template template vector::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::vector(_InputIterator __first, _InputIterator __last, template template vector::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::vector(_ForwardIterator __first, _ForwardIterator __la template template vector::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 template 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::assign(_InputIterator __first, _InputIterator __last) @@ -2983,7 +2983,7 @@ template template typename enable_if < - __is_forward_iterator<_ForwardIterator>::value, + __is_cpp17_forward_iterator<_ForwardIterator>::value, void >::type vector::assign(_ForwardIterator __first, _ForwardIterator __last) @@ -3120,8 +3120,8 @@ template template 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::iterator >::type vector::insert(const_iterator __position, _InputIterator __first, _InputIterator __last) @@ -3165,7 +3165,7 @@ template template typename enable_if < - __is_forward_iterator<_ForwardIterator>::value, + __is_cpp17_forward_iterator<_ForwardIterator>::value, typename vector::iterator >::type vector::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 0618731ce75a..3b16a78e47bf 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 ::value), "" ); - static_assert(( std::__is_forward_iterator ::value), "" ); - static_assert(( std::__is_bidirectional_iterator::value), "" ); - static_assert(( std::__is_random_access_iterator::value), "" ); - static_assert((!std::__is_exactly_input_iterator::value), "" ); + static_assert(( std::__is_cpp17_input_iterator ::value), "" ); + static_assert(( std::__is_cpp17_forward_iterator ::value), "" ); + static_assert(( std::__is_cpp17_bidirectional_iterator::value), "" ); + static_assert(( std::__is_cpp17_random_access_iterator::value), "" ); + static_assert((!std::__is_exactly_cpp17_input_iterator::value), "" ); - static_assert(( std::__is_input_iterator >::value), "" ); - static_assert((!std::__is_forward_iterator >::value), "" ); - static_assert((!std::__is_bidirectional_iterator >::value), "" ); - static_assert((!std::__is_random_access_iterator >::value), "" ); - static_assert(( std::__is_exactly_input_iterator >::value), "" ); + static_assert(( std::__is_cpp17_input_iterator >::value), "" ); + static_assert((!std::__is_cpp17_forward_iterator >::value), "" ); + static_assert((!std::__is_cpp17_bidirectional_iterator >::value), "" ); + static_assert((!std::__is_cpp17_random_access_iterator >::value), "" ); + static_assert(( std::__is_exactly_cpp17_input_iterator >::value), "" ); - static_assert(( std::__is_input_iterator >::value), "" ); - static_assert(( std::__is_forward_iterator >::value), "" ); - static_assert((!std::__is_bidirectional_iterator >::value), "" ); - static_assert((!std::__is_random_access_iterator >::value), "" ); - static_assert((!std::__is_exactly_input_iterator >::value), "" ); + static_assert(( std::__is_cpp17_input_iterator >::value), "" ); + static_assert(( std::__is_cpp17_forward_iterator >::value), "" ); + static_assert((!std::__is_cpp17_bidirectional_iterator >::value), "" ); + static_assert((!std::__is_cpp17_random_access_iterator >::value), "" ); + static_assert((!std::__is_exactly_cpp17_input_iterator >::value), "" ); - static_assert(( std::__is_input_iterator >::value), "" ); - static_assert(( std::__is_forward_iterator >::value), "" ); - static_assert(( std::__is_bidirectional_iterator >::value), "" ); - static_assert((!std::__is_random_access_iterator >::value), "" ); - static_assert((!std::__is_exactly_input_iterator >::value), "" ); + static_assert(( std::__is_cpp17_input_iterator >::value), "" ); + static_assert(( std::__is_cpp17_forward_iterator >::value), "" ); + static_assert(( std::__is_cpp17_bidirectional_iterator >::value), "" ); + static_assert((!std::__is_cpp17_random_access_iterator >::value), "" ); + static_assert((!std::__is_exactly_cpp17_input_iterator >::value), "" ); - static_assert(( std::__is_input_iterator >::value), "" ); - static_assert(( std::__is_forward_iterator >::value), "" ); - static_assert(( std::__is_bidirectional_iterator >::value), "" ); - static_assert(( std::__is_random_access_iterator >::value), "" ); - static_assert((!std::__is_exactly_input_iterator >::value), "" ); + static_assert(( std::__is_cpp17_input_iterator >::value), "" ); + static_assert(( std::__is_cpp17_forward_iterator >::value), "" ); + static_assert(( std::__is_cpp17_bidirectional_iterator >::value), "" ); + static_assert(( std::__is_cpp17_random_access_iterator >::value), "" ); + static_assert((!std::__is_exactly_cpp17_input_iterator >::value), "" ); - static_assert(( std::__is_input_iterator >::value), "" ); - static_assert((!std::__is_forward_iterator >::value), "" ); - static_assert((!std::__is_bidirectional_iterator >::value), "" ); - static_assert((!std::__is_random_access_iterator >::value), "" ); - static_assert(( std::__is_exactly_input_iterator >::value), "" ); + static_assert(( std::__is_cpp17_input_iterator >::value), "" ); + static_assert((!std::__is_cpp17_forward_iterator >::value), "" ); + static_assert((!std::__is_cpp17_bidirectional_iterator >::value), "" ); + static_assert((!std::__is_cpp17_random_access_iterator >::value), "" ); + static_assert(( std::__is_exactly_cpp17_input_iterator >::value), "" ); // // iterators from libc++'s containers