From f5fd6b5c8674fcf64a3e70809ee0a34d3a95beb6 Mon Sep 17 00:00:00 2001
From: bunnei <bunneidev@gmail.com>
Date: Sun, 14 Aug 2022 02:36:36 -0700
Subject: DMA & InlineToMemory Engines Rework.

---
 src/common/algorithm.h | 8 ++++++++
 1 file changed, 8 insertions(+)

(limited to 'src/common/algorithm.h')

diff --git a/src/common/algorithm.h b/src/common/algorithm.h
index 9ddfd637b6..055dca142d 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 T>(T x) { value = func(value, x); };
+    (std::invoke(high_func, std::forward<Args>(args)), ...);
+    return value;
+}
+
 } // namespace Common
-- 
cgit v1.2.3-70-g09d2