From: Aleksey Gurtovoy (agurtovoy_at_[hidden])
Date: 2002-07-25 04:58:54


David Brownstein wrote:
> Why not just call it MetaFunctionClass (or
> make_MetaFunctionClass)? It's at least east to read and understand... ;-)

'Cause it's overly long? :) Consider, for instance, this code snippet from
the paper:

typedef bind<
      meta_fun2<logical_or>
    , bind< meta_fun2<less>
        , bind< meta_fun1<size_of>,_1 >
        , int_c<16>
>
    , bind< meta_fun2<boost::is_same>,_1,_2 >
> func;

Now, we replace 'meta_fun' with 'metafunction_class':

typedef bind<
      metafunction_class2<logical_or>
    , bind< metafunction_class2<less>
        , bind< metafunction_class1<size_of>,_1 >
        , int_c<16>
>
    , bind< metafunction_class2<boost::is_same>,_1,_2 >
> func;

Ouch, IMO :). Another question is whether anybody would compose
metafunctions in this way in the first place, considering that lambda
notation is available on all compilers now.

Aleksey