title: Compilation failure when using std::shared_ptr instead of boost::shared_ptr
body: <p>The code below successfully sends an async message to the given endpoint.</p>
  
  <pre><code>// message is a boost::shared_ptr&lt;std::string&gt;
  
  // open a UDP socket
  boost::asio::ip::udp::socket socket(ioService);
  socket.open(boost::asio::ip::udp::v4());
  
  // create the remote endpoint
  boost::asio::ip::udp::endpoint remoteEndpoint(boost::asio::ip::address_v4::from_string(address), port);
  
  // asynchronously send a datagram to the remote endpoint
  socket.async_send_to(boost::asio::buffer(*message),
                       remoteEndpoint,
                       boost::bind(&amp;MyClass::handler,
                                   this,
                                   message,
                                   boost::asio::placeholders::error,
                                   boost::asio::placeholders::bytes_transferred));
  
  socket.close();
  </code></pre>
  
  <p>However, if I change the type of <code>message</code> to a <code>std::shared_ptr&lt;std::string&gt;</code> rather than a <code>boost::shared_ptr&lt;std::string&gt;</code> then the call to <code>async_send_to</code> doesn't compile.</p>
  
  <p>The error is:</p>
  
  <pre><code>boost/boost/bind/bind.hpp:457:9: No matching function for call to object of type 'boost::_mfi::mf3&lt;void, MyClass, const boost::shared_ptr&lt;std::__1::basic_string&lt;char&gt; &gt; &amp;, const boost::system::error_code &amp;, unsigned long&gt;'.
  </code></pre>
  
  <p>Can someone explain what is wrong? Is it possibly because I'm using boost::bind? </p>