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