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