// This file is part of the mcl project. // Copyright (c) 2022 merryhime // SPDX-License-Identifier: MIT #pragma once namespace mcl::mp { namespace detail { template class F, class L> struct apply_impl; template class F, template class LT, class... Es> struct apply_impl> { using type = F; }; } // namespace detail /// Invokes metafunction F where the arguments are all the members of list L template class F, class L> using apply = typename detail::apply_impl::type; } // namespace mcl::mp