21 Feb
2017
21 Feb
'17
11:38 p.m.
Bruno Dutra wrote:
mp_transform<std::add_const_t, std::shared_ptr<X>> // std::shared_ptr<X const>
Your example is implemented in Metal like this
using _ = metal::transform<metal::lambda<std::add_const_t>, metal::as_list<std::shared_ptr<X>>>; // metal::list<X const> metal::apply<metal::lambda<std::shared_ptr>, _> // std::shared_ptr<X const>
And suppose that std::shared_ptr<X> is given to you as a type P, and you don't know if it's shared_ptr or not, so you can't use metal::lambda<std::shared_ptr>?