// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #pragma once #include #include namespace Common { // Check if type satisfies the ContiguousContainer named requirement. template concept IsContiguousContainer = std::contiguous_iterator; // TODO: Replace with std::derived_from when the header // is available on all supported platforms. template concept DerivedFrom = requires { std::is_base_of_v; std::is_convertible_v; }; // TODO: Replace with std::convertible_to when libc++ implements it. template concept ConvertibleTo = std::is_convertible_v; // No equivalents in the stdlib template concept IsArithmetic = std::is_arithmetic_v; template concept IsIntegral = std::is_integral_v; } // namespace Common