Boost logo

Boost Users :

From: Steven Watanabe (watanabesj_at_[hidden])
Date: 2008-05-06 15:44:48


AMDG

Edward Diener wrote:
> I understand the explanation about how placeholders work. The rule you
> are specifying appears to be that one never adds the '::type' to the end
> of a placeholder expression when it is being passed to an mpl construct.
> Is that correct ?
>

You should never add ::type to a placeholder expression at all.
Otherwise, the metafunction will probably get very confused.

> I wish I knew what the is an mpl function as opposed to what is not an
> mpl function. Perhaps the mpl algorithms are the mpl functions and
> everything which is not an algorithm is not an mpl function.
>

Inserters, Sequences, and the types listed under "Data Types" are not
metafunctions.
Everything listed in a section with Metafunctions of Algorithms in its
name are metafunctions.

>> If your not
>> sure, the
>> only thing to do is look it up.
>>
>
> Look up what ? Where in the reference documentation does it tell me
> whether I need to add '::type' to the end of an mpl construct ?
>

Here are two examples from the reference:

template< typename Sequence , typename State , typename ForwardOp >
struct accumulate <./accumulate.html> {
    typedef /unspecified/ type;
};

template< typename Seq >
struct back_inserter <./back-inserter.html> {
    // /unspecified/
    // /.../
};

In Christ,
Steven Watanabe


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net