// Copyright 2025 Dolphin Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #include <utility> namespace Common::Projection { struct First { // TODO C++23: static operator() template <class T> [[nodiscard]] constexpr auto&& operator()(T&& t) const noexcept { return std::forward<T>(t).first; } }; struct Second { // TODO C++23: static operator() template <class T> [[nodiscard]] constexpr auto&& operator()(T&& t) const noexcept { return std::forward<T>(t).second; } }; using Key = First; using Value = Second; } // namespace Common::Projection