diff options
Diffstat (limited to 'src/common/algorithm.h')
-rw-r--r-- | src/common/algorithm.h | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/common/algorithm.h b/src/common/algorithm.h index 4804a3421..c27c9241d 100644 --- a/src/common/algorithm.h +++ b/src/common/algorithm.h @@ -1,6 +1,5 @@ -// Copyright 2019 yuzu emulator team -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. +// SPDX-FileCopyrightText: Copyright 2019 yuzu Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later #pragma once @@ -25,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 |