aboutsummaryrefslogtreecommitdiff
path: root/src/common/algorithm.h
diff options
context:
space:
mode:
authorFernando S <fsahmkow27@gmail.com>2022-10-06 21:29:53 +0200
committerGitHub <noreply@github.com>2022-10-06 21:29:53 +0200
commitb8860d8aa5b3db0d1bb323bf61d4dd175ab26650 (patch)
tree14803b31b6817294d40d57446f6fa94c5ff3fe9a /src/common/algorithm.h
parentd2f7e857d9cdd0943bd71b0e7f4abdf90c562f72 (diff)
parent285aedee4f28c87a8a1ad49c81071baaf952e344 (diff)
Merge pull request #8467 from FernandoS27/yfc-rel-1
Project yuzu Fried Chicken (Y.F.C.) Part 1
Diffstat (limited to 'src/common/algorithm.h')
-rw-r--r--src/common/algorithm.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/common/algorithm.h b/src/common/algorithm.h
index 9ddfd637b6..c27c9241d9 100644
--- a/src/common/algorithm.h
+++ b/src/common/algorithm.h
@@ -24,4 +24,12 @@ template <class ForwardIt, class T, class Compare = std::less<>>
return first != last && !comp(value, *first) ? first : last;
}
+template <typename T, typename Func, typename... Args>
+T FoldRight(T initial_value, Func&& func, Args&&... args) {
+ T value{initial_value};
+ const auto high_func = [&value, &func]<typename U>(U x) { value = func(value, x); };
+ (std::invoke(high_func, std::forward<Args>(args)), ...);
+ return value;
+}
+
} // namespace Common