![]()  | 
          The asio::use_future special value provides first-class support
          for returning a C++11 std::future from an asynchronous operation's
          initiating function.
        
          To use asio::use_future, pass it to an asynchronous operation
          instead of a normal completion handler. For example:
        
std::future<std::size_t> length = my_socket.async_read_some(my_buffer, asio::use_future);
Where a handler signature has the form:
void handler(asio::error_code ec, result_type result);
          the initiating function returns a std::future templated on
          result_type. In the above example, this is std::size_t.
          If the asynchronous operation fails, the error_code is converted
          into a system_error exception and passed back to the caller
          through the future.
        
Where a handler signature has the form:
void handler(asio::error_code ec);
          the initiating function returns std::future<void>. As
          above, an error is passed back in the future as a system_error
          exception.