summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMaxime Coste <mawww@kakoune.org>2025-06-27 12:11:59 +1000
committerMaxime Coste <mawww@kakoune.org>2025-06-27 12:11:59 +1000
commitb3c3baef518d65f30a34b06764c6529b8247b837 (patch)
treea63ef3adec618af003165f60cb264bf5f75de09d /src
parent5246ca6957888946e49cf2c487e762bda04016d1 (diff)
Small code style tweak in ranges utilities
Diffstat (limited to 'src')
-rw-r--r--src/ranges.hh28
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>());
}
}