Aleksey Gurtovoy wrote:
That's because the MPL's lambda works only with metafunctions which template
parameters are _types_, and only types:
That's what I suspected.
3) a metafunction with template template parameter, can't be used in lambda
expressions:
Again, what I suspected.
It _is_ possible to implement a single template along the lines of the
SHAZAM template you've mentioned early in the thread:
template<typename T, typename U, typename V>
struct my_type { ... } // Note: no ::type member
typedef SHAZAM<my_type<int, _1, _2> > generator;
typedef generator::template apply<char, float>::type my_type_inst;
but not at the user side - the library internal mechanisms needs to be made
aware of it. I considered this before, - as well as the option of directly
supporting the "reduced" metafunction form, - and the latter is currently my
preference. Will see if something changes after I actually implement it (for
one, it might slow down the lambda significantly, - but we'll see).
Thanks for considering this. I think it will be quite useful. I look
forward to seeing what you come up with!
-Dave
--
"Some little people have music in them, but Fats, he was all music,
and you know how big he was." -- James P. Johnson
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost