forked from OSchip/llvm-project
Rename __is_foo_iterator traits to reflect their Cpp17 nature.
With the upcoming introduction of iterator concepts in ranges, the meaning of "__is_contiguous_iterator" changes drastically. Currently we intend it to mean "does it have this iterator category", but it could now also mean "does it meet the requirements of this concept", and these can be different.
This commit is contained in:
parent
783cb86b61
commit
f82dba0192
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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.");
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
>
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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_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_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_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_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_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_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_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_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_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_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 <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
|
||||
|
|
Loading…
Reference in New Issue