diff --git a/include/boost/mp11/map.hpp b/include/boost/mp11/map.hpp index b9581ac..a60119d 100644 --- a/include/boost/mp11/map.hpp +++ b/include/boost/mp11/map.hpp @@ -53,14 +53,20 @@ template using mp_map_replace = typename detail::mp_map_replac namespace detail { -template class F> struct mp_map_update_impl +template struct mp_map_update_impl_f { template using _f = std::is_same, mp_first>; +}; +template class F> struct mp_map_update_impl_f3 +{ // _f3> -> L> template using _f3 = mp_assign, mp_rename > >; +}; - using type = mp_if< mp_map_contains>, mp_transform_if<_f, _f3, M>, mp_push_back >; +template class F> struct mp_map_update_impl +{ + using type = mp_if< mp_map_contains>, mp_transform_if::template _f, mp_map_update_impl_f3::template _f3, M>, mp_push_back >; }; } // namespace detail