More P0202 constexpr-ifying. All the find_XXX algorithms in this commit.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@322504 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -39,43 +39,43 @@ template<class InputIterator, class Size, class Function>
|
||||
InputIterator for_each_n(InputIterator first, Size n, Function f); // C++17
|
||||
|
||||
template <class InputIterator, class T>
|
||||
constexpr InputIterator // constexpr in C++20
|
||||
constexpr InputIterator // constexpr in C++20
|
||||
find(InputIterator first, InputIterator last, const T& value);
|
||||
|
||||
template <class InputIterator, class Predicate>
|
||||
constexpr InputIterator // constexpr in C++20
|
||||
constexpr InputIterator // constexpr in C++20
|
||||
find_if(InputIterator first, InputIterator last, Predicate pred);
|
||||
|
||||
template<class InputIterator, class Predicate>
|
||||
InputIterator
|
||||
InputIterator // constexpr in C++20
|
||||
find_if_not(InputIterator first, InputIterator last, Predicate pred);
|
||||
|
||||
template <class ForwardIterator1, class ForwardIterator2>
|
||||
ForwardIterator1
|
||||
ForwardIterator1 // constexpr in C++20
|
||||
find_end(ForwardIterator1 first1, ForwardIterator1 last1,
|
||||
ForwardIterator2 first2, ForwardIterator2 last2);
|
||||
|
||||
template <class ForwardIterator1, class ForwardIterator2, class BinaryPredicate>
|
||||
ForwardIterator1
|
||||
ForwardIterator1 // constexpr in C++20
|
||||
find_end(ForwardIterator1 first1, ForwardIterator1 last1,
|
||||
ForwardIterator2 first2, ForwardIterator2 last2, BinaryPredicate pred);
|
||||
|
||||
template <class ForwardIterator1, class ForwardIterator2>
|
||||
ForwardIterator1
|
||||
constexpr ForwardIterator1 // constexpr in C++20
|
||||
find_first_of(ForwardIterator1 first1, ForwardIterator1 last1,
|
||||
ForwardIterator2 first2, ForwardIterator2 last2);
|
||||
|
||||
template <class ForwardIterator1, class ForwardIterator2, class BinaryPredicate>
|
||||
ForwardIterator1
|
||||
constexpr ForwardIterator1 // constexpr in C++20
|
||||
find_first_of(ForwardIterator1 first1, ForwardIterator1 last1,
|
||||
ForwardIterator2 first2, ForwardIterator2 last2, BinaryPredicate pred);
|
||||
|
||||
template <class ForwardIterator>
|
||||
ForwardIterator
|
||||
constexpr ForwardIterator // constexpr in C++20
|
||||
adjacent_find(ForwardIterator first, ForwardIterator last);
|
||||
|
||||
template <class ForwardIterator, class BinaryPredicate>
|
||||
ForwardIterator
|
||||
constexpr ForwardIterator // constexpr in C++20
|
||||
adjacent_find(ForwardIterator first, ForwardIterator last, BinaryPredicate pred);
|
||||
|
||||
template <class InputIterator, class T>
|
||||
@@ -1016,7 +1016,7 @@ find_if(_InputIterator __first, _InputIterator __last, _Predicate __pred)
|
||||
// find_if_not
|
||||
|
||||
template<class _InputIterator, class _Predicate>
|
||||
inline _LIBCPP_INLINE_VISIBILITY
|
||||
inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX17
|
||||
_InputIterator
|
||||
find_if_not(_InputIterator __first, _InputIterator __last, _Predicate __pred)
|
||||
{
|
||||
@@ -1029,7 +1029,7 @@ find_if_not(_InputIterator __first, _InputIterator __last, _Predicate __pred)
|
||||
// find_end
|
||||
|
||||
template <class _BinaryPredicate, class _ForwardIterator1, class _ForwardIterator2>
|
||||
_ForwardIterator1
|
||||
_LIBCPP_CONSTEXPR_AFTER_CXX17 _ForwardIterator1
|
||||
__find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
|
||||
_ForwardIterator2 __first2, _ForwardIterator2 __last2, _BinaryPredicate __pred,
|
||||
forward_iterator_tag, forward_iterator_tag)
|
||||
@@ -1071,7 +1071,7 @@ __find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
|
||||
}
|
||||
|
||||
template <class _BinaryPredicate, class _BidirectionalIterator1, class _BidirectionalIterator2>
|
||||
_BidirectionalIterator1
|
||||
_LIBCPP_CONSTEXPR_AFTER_CXX17 _BidirectionalIterator1
|
||||
__find_end(_BidirectionalIterator1 __first1, _BidirectionalIterator1 __last1,
|
||||
_BidirectionalIterator2 __first2, _BidirectionalIterator2 __last2, _BinaryPredicate __pred,
|
||||
bidirectional_iterator_tag, bidirectional_iterator_tag)
|
||||
@@ -1151,7 +1151,7 @@ __find_end(_RandomAccessIterator1 __first1, _RandomAccessIterator1 __last1,
|
||||
}
|
||||
|
||||
template <class _ForwardIterator1, class _ForwardIterator2, class _BinaryPredicate>
|
||||
inline _LIBCPP_INLINE_VISIBILITY
|
||||
inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX17
|
||||
_ForwardIterator1
|
||||
find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
|
||||
_ForwardIterator2 __first2, _ForwardIterator2 __last2, _BinaryPredicate __pred)
|
||||
@@ -1163,7 +1163,7 @@ find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
|
||||
}
|
||||
|
||||
template <class _ForwardIterator1, class _ForwardIterator2>
|
||||
inline _LIBCPP_INLINE_VISIBILITY
|
||||
inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX17
|
||||
_ForwardIterator1
|
||||
find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
|
||||
_ForwardIterator2 __first2, _ForwardIterator2 __last2)
|
||||
@@ -1189,7 +1189,7 @@ __find_first_of_ce(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
|
||||
|
||||
|
||||
template <class _ForwardIterator1, class _ForwardIterator2, class _BinaryPredicate>
|
||||
inline _LIBCPP_INLINE_VISIBILITY
|
||||
inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX17
|
||||
_ForwardIterator1
|
||||
find_first_of(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
|
||||
_ForwardIterator2 __first2, _ForwardIterator2 __last2, _BinaryPredicate __pred)
|
||||
@@ -1198,7 +1198,7 @@ find_first_of(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
|
||||
}
|
||||
|
||||
template <class _ForwardIterator1, class _ForwardIterator2>
|
||||
inline _LIBCPP_INLINE_VISIBILITY
|
||||
inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX17
|
||||
_ForwardIterator1
|
||||
find_first_of(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
|
||||
_ForwardIterator2 __first2, _ForwardIterator2 __last2)
|
||||
@@ -1211,7 +1211,7 @@ find_first_of(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
|
||||
// adjacent_find
|
||||
|
||||
template <class _ForwardIterator, class _BinaryPredicate>
|
||||
inline _LIBCPP_INLINE_VISIBILITY
|
||||
inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX17
|
||||
_ForwardIterator
|
||||
adjacent_find(_ForwardIterator __first, _ForwardIterator __last, _BinaryPredicate __pred)
|
||||
{
|
||||
@@ -1229,7 +1229,7 @@ adjacent_find(_ForwardIterator __first, _ForwardIterator __last, _BinaryPredicat
|
||||
}
|
||||
|
||||
template <class _ForwardIterator>
|
||||
inline _LIBCPP_INLINE_VISIBILITY
|
||||
inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX17
|
||||
_ForwardIterator
|
||||
adjacent_find(_ForwardIterator __first, _ForwardIterator __last)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user