title: What are the benefits of using Boost.Phoenix?
body: <p>I can not understand what the real benefits of using Boost.Phoenix. </p>
  
  <p>When I use it with Boost.Spirit grammars, it's really useful:</p>
  
  <pre><code>double_[ boost::phoenix::push_back( boost::phoenix::ref( v ), _1 ) ]
  </code></pre>
  
  <p>When I use it for lambda functions, it's also useful and elegant:</p>
  
  <pre><code>boost::range::for_each( my_string, if_ ( '\\' == arg1 ) [ arg1 = '/' ] );
  </code></pre>
  
  <p>But what are the benefits of everything else in this library? The documentation says: "Functors everywhere". I don't understand what is the good of it?</p>