"Paul Mensonides" <[EMAIL PROTECTED]> writes:

> ----- Original Message -----
> From: "David Abrahams" <[EMAIL PROTECTED]>
>
>> "Paul Mensonides" <[EMAIL PROTECTED]> writes:
>>
>> > Which could be even shorter yet if we could get away with template
>> > template parameters.
>>
>> We can and do.
>>
>> How would you imagine it would be spelled with TTP?
>
> You asked for it. ;)  Beware, this is the work of a sick mind!
> Basically, this implementation reduces the sample to an inline fold of the
> form:
>
> operation::step<X>::step<Y>::step<Z>::[ value | type ]
>
> ...where 'operation' is the type of operation and where '[ value | type ]'
> is either 'value' or 'type'.
> Ultimately, we get something similar to this (with the help of a macro to
> handle the ::template that is sometimes necessary):
>
> is_present<T>
>     item <bool>
>     item <int>
>     item <double>
>     item <std::string>
>     ::value
>

<snip>

AFAICT from browsing it quickly, the significance of TTP in your code
is that you are passing templates instead of types as functions in the
interfaces to your metafunctions, which I think is inadvisable,
because it eventually breaks metafunction polymorphism.

Other than that, the final interface you show is one that's acheivable
without TTP at all.

-- 
                       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

Reply via email to