1
0
forked from boostorg/mp11

Add support for mp_product<F>

This commit is contained in:
Peter Dimov
2020-06-03 15:08:49 +03:00
parent d709610087
commit 10ba80acb9
3 changed files with 25 additions and 9 deletions

View File

@@ -254,7 +254,9 @@ template<class L, class N> using mp_repeat = typename detail::mp_repeat_c_impl<L
namespace detail
{
template<template<class...> class F, class P, class... L> struct mp_product_impl_2;
template<template<class...> class F, class P, class... L> struct mp_product_impl_2
{
};
template<template<class...> class F, class P> struct mp_product_impl_2<F, P>
{
@@ -266,7 +268,14 @@ template<template<class...> class F, class P, template<class...> class L1, class
using type = mp_append<typename mp_product_impl_2<F, mp_push_back<P, T1>, L...>::type...>;
};
template<template<class...> class F, class... L> struct mp_product_impl;
template<template<class...> class F, class... L> struct mp_product_impl
{
};
template<template<class...> class F> struct mp_product_impl<F>
{
using type = mp_list< F<> >;
};
template<template<class...> class F, class L1, class... L> struct mp_product_impl<F, L1, L...>
{