title: boost::bind doesn't work with boost::tuple::get<N>()
body: <p>I am trying to use <code>boost::bind</code> and STL with <code>boost::tuple</code>, but each time I try to compile I get the following error.</p>
  
  <pre><code>      error: call of overloaded ‘bind(&lt;unresolved overloaded function type&gt;, 
        boost::arg&lt;1&gt;&amp;)’ is ambiguous
  </code></pre>
  
  <p>Do you know what I am doing wrong here and why is only for the <code>boost::arg&lt;1></code>?</p>
  
  <p>Thanks
  AFG</p>
  
  <pre><code>    #include &lt;iostream&gt;
      #include &lt;algorithm&gt;
      #include &lt;vector&gt;
      #include &lt;cstdio&gt;
      #include &lt;boost/tuple/tuple.hpp&gt;
      #include &lt;boost/assign.hpp&gt;
      #include &lt;boost/bind.hpp&gt;
  
      int main( int argc, const char** argv ){
  
  
              using namespace boost::assign;
              typedef boost::tuple&lt; int, double &gt; eth_array;
  
              std::vector&lt; eth_array &gt; v;
              v+= boost::make_tuple( 10,23.4), boost::make_tuple( 12,24.4) );
              std::for_each( v.begin()
                      , v.end()
                      , boost::bind&lt;int&gt;(
                              printf
                              , "%d-%f"
                              , boost::bind( eth_array::get&lt;0&gt;, _1 )
                              , boost::bind( eth_array::get&lt;1&gt;, _1 )
                       )
              );
  </code></pre>