Я не могу понять, что за реальные преимущества использования Boost.Phoenix.
Когда я использую его с грамматиками Boost.Spirit, он действительно полезен:
double_[ boost::phoenix::push_back( boost::phoenix::ref( v ), _1 ) ]
Когда я использую его для лямбда-функций, он также полезен и элегантен:
boost::range::for_each( my_string, if_ ( '\\' == arg1 ) [ arg1 = '/' ] );
Но каковы преимущества всего остального в этой библиотеке? В документации сказано: «Функторы везде». Я не Не понимаю, какая в этом польза?