// Copyright 2018 Dolphin Emulator Project // Licensed under GPLv2+ // Refer to the license.txt file included. #pragma once #include namespace detail { template struct VariantCastProxy { const std::variant& v; template operator std::variant() const { return std::visit([](auto&& arg) { return std::variant{arg}; }, v); } }; } // namespace detail template auto VariantCast(const std::variant& v) { return detail::VariantCastProxy{v}; }