title: boost::asio::read_until does not accept a socket as an argument
body: <p>I've <a href="https://stackoverflow.com/a/7878434/7622324">read</a> that you can use <code>boost::asio::read_until</code> to read from a socket, so I tried to do that:</p>
  <pre><code>using namespace boost::asio;
    ...
      boost::array&lt;char, BUFFER_SIZE&gt; buf;
      read_until(this-&gt;socket_opt.value(), buffer(buf), &quot;\n&quot;);
  </code></pre>
  <p>But apparently, read_until cannot accept those arguments:</p>
  <pre><code>error: no matching function for call to ‘read_until(const boost::asio::basic_stream_socket&lt;boost::asio::ip::tcp&gt;&amp;, boost::asio::mutable_buffers_1, const char [2])’
          read_until(this-&gt;socket_opt.value(), buffer(buf), &quot;\n&quot;);
  </code></pre>
  <p>What am I doing wrong?</p>
  <p>P.S. socket_opt is defined as <code>std::optional&lt;boost::asio::ip::tcp::socket&gt; socket_opt</code> and has a value at runtime.</p>