2012-04-16 2 views

ответ

2

EDIT: Я был неправ, вы можете использовать mpl::plus непосредственно, используя placeholder expressions. Это упрощает все обозначения:

typedef mpl::accumulate<ints, mpl::int_<0>, mpl::plus<mpl::_1, mpl::_2> >::type sum; 

Конечно, это также возможно получить тот же эффект, используя metafunction class (который для добавления является излишним, но для чего-то более сложного может быть разумными):

struct plus_mpl 
{ 
    template <class T1, class T2> 
    struct apply 
    { 
     typedef typename mpl::plus<T1,T2>::type type; 
    }; 
}; 

typedef mpl::accumulate<ints, mpl::int_<0>, plus_mpl >::type sum; 
Смежные вопросы