================
@@ -0,0 +1,93 @@
+#ifndef MISSING_END_COMPARISON_FAKE_STD_H
+#define MISSING_END_COMPARISON_FAKE_STD_H
+
+namespace std {
+ template<typename T> struct iterator_traits;
+ struct forward_iterator_tag {};
+
+ typedef long int ptrdiff_t;
+ typedef decltype(nullptr) nullptr_t;
+
+ template<typename T>
+ struct vector {
+ typedef T* iterator;
+ typedef const T* const_iterator;
+ iterator begin();
+ iterator end();
+ const_iterator begin() const;
+ const_iterator end() const;
+ };
+
+ template<class InputIt, class T>
+ InputIt find(InputIt first, InputIt last, const T& value);
+
+ namespace execution {
+ struct sequenced_policy {};
+ struct parallel_policy {};
+ inline constexpr sequenced_policy seq;
+ inline constexpr parallel_policy par;
+ }
+
+ template<class ExecutionPolicy, class InputIt, class T>
+ InputIt find(ExecutionPolicy&& policy, InputIt first, InputIt last, const T&
value);
+
+ template<class ExecutionPolicy, class ForwardIt, class T>
+ ForwardIt lower_bound(ExecutionPolicy&& policy, ForwardIt first, ForwardIt
last, const T& value);
+
+ template<class ForwardIt, class T>
+ ForwardIt lower_bound(ForwardIt first, ForwardIt last, const T& value);
+
+ template<class ForwardIt, class ForwardIt2>
+ ForwardIt search(ForwardIt first, ForwardIt last, ForwardIt first2,
ForwardIt2 last2);
+
+ template<class ForwardIt>
+ ForwardIt min_element(ForwardIt first, ForwardIt last);
+
+ template<class InputIt1, class InputIt2>
+ struct pair {
+ InputIt1 first;
+ InputIt2 second;
+ };
+
+ namespace ranges {
+ template<typename T>
+ void* begin(T& t);
+ template<typename T>
+ void* end(T& t);
+
+ struct FindFn {
+ template<typename Range, typename T>
+ void* operator()(Range&& r, const T& value) const;
+
+ template<typename I, typename S, typename T>
+ void* operator()(I first, S last, const T& value) const;
+ };
+ inline constexpr FindFn find;
+
+ struct FindFirstOfFn {
+ template<typename R1, typename R2>
+ void* operator()(R1&& r1, R2&& r2) const;
+ template<typename I1, typename S1, typename I2, typename S2>
+ void* operator()(I1 f1, S1 l1, I2 f2, S2 l2) const;
+ };
+ inline constexpr FindFirstOfFn find_first_of;
+
+ struct AdjacentFindFn {
+ template<typename R>
+ void* operator()(R&& r) const;
+ template<typename I, typename S>
+ void* operator()(I f, S l) const;
+ };
+ inline constexpr AdjacentFindFn adjacent_find;
+
+ struct IsSortedUntilFn {
+ template<typename R>
+ void* operator()(R&& r) const;
+ template<typename I, typename S>
+ void* operator()(I f, S l) const;
----------------
zwuis wrote:
Missing `comp` and `proj` parameters.
https://en.cppreference.com/w/cpp/algorithm/ranges/is_sorted_until.html
https://github.com/llvm/llvm-project/pull/182543
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits