[MPL] why is apply<_1, _2> not a placeholder expression?

Hi! Currently, apply does not meet the criteria for a Placeholder Expression because the number of template parameters is one too many. Still, I think it would be useful to be able to use apply as a lambda expression. For my use case, I needed a lazy metafunction that took a function and its argument, evaluating the passed function with the argument. My initial approach to this was to use lambda<apply<_2, _1> >::type this approach failed, it turns out, because lambda returns apply<_2, _1> unchanged, while I expected to get protect< bind2< quote2<apply>, arg<2>, arg<1> > > A simple workaround is to use apply1, instead or to directly use the expression above, which diminishes code readability. Would it be possible and desirable to give apply special treatment in lambda, if only to avoid surprises in similar use cases? Best regards, João
participants (1)
-
João Abecasis