diff options
| author | Maxime Coste <mawww@kakoune.org> | 2025-06-27 12:11:59 +1000 |
|---|---|---|
| committer | Maxime Coste <mawww@kakoune.org> | 2025-06-27 12:11:59 +1000 |
| commit | b3c3baef518d65f30a34b06764c6529b8247b837 (patch) | |
| tree | a63ef3adec618af003165f60cb264bf5f75de09d /src | |
| parent | 5246ca6957888946e49cf2c487e762bda04016d1 (diff) | |
Small code style tweak in ranges utilities
Diffstat (limited to 'src')
| -rw-r--r-- | src/ranges.hh | 28 |
1 files changed, 12 insertions, 16 deletions
diff --git a/src/ranges.hh b/src/ranges.hh index af13d6f8..affafda9 100644 --- a/src/ranges.hh +++ b/src/ranges.hh @@ -546,10 +546,10 @@ auto find(Range&& range, const T& value) } template<typename Range, typename T> -auto find_if(Range&& range, T op) +auto find_if(Range&& range, T&& op) { using std::begin; using std::end; - return std::find_if(begin(range), end(range), op); + return std::find_if(begin(range), end(range), std::forward<T>(op)); } template<typename Range, typename T> @@ -560,24 +560,24 @@ bool contains(Range&& range, const T& value) } template<typename Range, typename T> -bool all_of(Range&& range, T op) +bool all_of(Range&& range, T&& op) { using std::begin; using std::end; - return std::all_of(begin(range), end(range), op); + return std::all_of(begin(range), end(range), std::forward<T>(op)); } template<typename Range, typename T> -bool any_of(Range&& range, T op) +bool any_of(Range&& range, T&& op) { using std::begin; using std::end; - return std::any_of(begin(range), end(range), op); + return std::any_of(begin(range), end(range), std::forward<T>(op)); } template<typename Range, typename T> -auto remove_if(Range&& range, T op) +auto remove_if(Range&& range, T&& op) { using std::begin; using std::end; - return std::remove_if(begin(range), end(range), op); + return std::remove_if(begin(range), end(range), std::forward<T>(op)); } template<typename Range, typename U> @@ -596,7 +596,7 @@ template<typename Range, typename Init, typename BinOp> Init accumulate(Range&& c, Init&& init, BinOp&& op) { using std::begin; using std::end; - return std::accumulate(begin(c), end(c), init, op); + return std::accumulate(begin(c), end(c), init, std::forward<BinOp>(op)); } template<typename Range, typename Compare, typename Func> @@ -652,16 +652,12 @@ auto elements() }}; } -template<typename ExceptionType, bool exact_size, size_t... Indexes> -auto static_gather_impl(std::index_sequence<Indexes...>) -{ - return elements<ExceptionType, exact_size, Indexes...>(); -} - template<typename ExceptionType, size_t size, bool exact_size = true> auto static_gather() { - return static_gather_impl<ExceptionType, exact_size>(std::make_index_sequence<size>()); + return []<size_t... Indexes>(std::index_sequence<Indexes...>) { + return elements<ExceptionType, exact_size, Indexes...>(); + }(std::make_index_sequence<size>()); } } |
