I think the best example is when you need to alocate a named object of

some expression-template (using Boost.Lambda):

lambda_functor<

lambda_functor_base<

logical_action<and_action>,

tuple<

lambda_functor<

lambda_functor_base<

relational_action<greater_action>,

tuple<

lambda_functor<placeholder<1> >,

int const

>

>

>,
lambda_functor<

lambda_functor_base<

relational_action<less_action>,

tuple<

lambda_functor<placeholder<2> >,

int const

>

>

>

>

>

>
f = _1 > 15 && _2 < 20;

as opposed to just (using auto that's defined through typeof):

auto f = _1 > 15 && _2 < 20;

Of course, this is not necessary, you can use the one above. The

question, however, is which one do you prefer

Regards,

Arkadiy