title: can boost::bind be used with references without copying?
body: <p>Following code shows that the parameter, passed by reference, is copied when using boost::bind.  Is there a way to prevent the copying without resorting to pointers (which I currently use as workaround)?  (tested with gcc 4.4.3)</p>
  
  <pre><code>#include &lt;iostream&gt;
  #include &lt;boost/function.hpp&gt;
  #include &lt;boost/bind.hpp&gt;
  
  void function1(int&amp; x)
  {
    std::cout &lt;&lt; "function1 &amp;x: " &lt;&lt; &amp;x &lt;&lt; std::endl;
  }
  
  int main()
  {
    int y = 0;
    std::cout &lt;&lt; "main &amp;y: " &lt;&lt; &amp;y &lt;&lt; std::endl;
  
    boost::function&lt;void()&gt; f = boost::bind(function1, y);
    f();
  }
  </code></pre>