Boost logo

Boost :

From: Steven Watanabe (steven_at_[hidden])
Date: 2006-12-16 17:01:48


Larry Evans wrote:
> On 12/16/2006 10:23 AM, SourceForge.net wrote:
>
>> > Bugs item #1617058, was opened at 2006-12-16 10:23
>> > Message generated for change (Tracker Item Submitted) made by Item Submitter
>> > You can respond by visiting:
>> > https://sourceforge.net/tracker/?func=detail&atid=107586&aid=1617058&group_id=7586
>>
> [snip]
>> > Initial Comment:
>> > he 3 expression requirements on:
>> >
>> > http://www.boost.org/libs/mpl/doc/refmanual/placeholder-expression.html
>> >
>> > make no mention that X should have a nested
>> > type typedef. IOW, X must be a metafunction
>> > as defined here:
>> >
>> > http://www.boost.org/libs/mpl/doc/refmanual/metafunction.html
>> >
>> > However, I believe it should since I'm
>> > getting compile-time error messages
>> > without the nested typedef.
>>
> The tuple_methods_proto.cpp in <boost-vauilt>/Template Metaprogramming
> demonstates the problem.

The problem is not with MPL lambda. The problem is here:

struct method_types<wrap_method_name<m_0>, TailMethods, FFC>
: TailMethods {...};

TailMethods inherits from mpl::inherit2<field_types<f_0>,
field_types<f_1> > which look like

struct mpl::inherit2 : T1, T2 {
    typedef inherit2 type;
};

So, when you do not define type you inherit the base class version
and applied_phe becomes mpl::inherit2<field_types<f_0>, field_types<f_1> >.

In Christ,
Steven Watanabe


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk