/* This file is part of the mp project. * Copyright (c) 2017 MerryMage * SPDX-License-Identifier: 0BSD */ #pragma once namespace 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 mp