/* This file is part of the dynarmic project. * Copyright (c) 2016 MerryMage * This software may be used and distributed according to the terms of the GNU * General Public License version 2 or any later version. */ #pragma once #include namespace Dynarmic { namespace Common { namespace detail { template struct ReverseAdapter { T& iterable; auto begin() { using namespace std; return rbegin(iterable); } auto end() { using namespace std; return rend(iterable); } }; } // namespace detail template detail::ReverseAdapter Reverse(T&& iterable) { return detail::ReverseAdapter{iterable}; } } // namespace Common } // namespace Dynarmic