/* 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 map_impl; template class F, template class LT, class... Es> struct map_impl> { using type = LT...>; }; } // namespace detail /// Applies each element of list L to metafunction F template class F, class L> using map = typename detail::map_impl::type; } // namespace mp