"David A. Greene" <[EMAIL PROTECTED]> writes: > >> template <class T, class U, class V> >> struct my_type_generator >> { >> typedef my_type<T,U,V> type; >> }; >> lambda<my_type_generator> does it
Oops, I meant lambda<my_type_generator<Bound,mpl::_1,mpl::_2> > of course! > , unless of course your compiler >> needs BOOST_MPL_AUX_LAMDA_SUPPORT. I don't think it's much of a >> savings, though. > > Not for one class, no, but when we're talking several classes > with several binding requirements, I think there's a significant > savings to be had. So do you feel you need an additional library feature? > Plus your solution here doesn't bind T to a type. :) Are you just pointing out my error? >>>I thought lambda might do the trick, but apparently not: >>> >>>typedef my_type<int, mpl::_1, mpl::_2> my_type_generator; >>> >>>(This will be passed to an MPL algorithm so I didn't >>>bother with lambda<>). >>> >>>This causes a static assertion in mpl::arg<2> where it >>>sees a void type for V (I think). >>> >>>Is the problem that my_type doesn't contain a ::type >>> member? >> Maybe. What compiler are you using? > > g++ 3.2. The MPL paper and docs don't say anything about > using placeholders or binders with classes that aren't > metafunctions. How would the binders know what to typedef > as apply::type? I don't know... well, it could detect whether there was a ::type member, and if it were not present, it could just give you the outer class. I think that's a bit of a hack, though. -- David Abrahams [EMAIL PROTECTED] * http://www.boost-consulting.com Boost support, enhancements, training, and commercial distribution _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost