asio C++ library

PrevUpHomeNext

Futures

The asio::use_future completion token provides first-class support for returning a std::future from an asynchronous operation's initiating function.

To use asio::use_future, pass it to an asynchronous operation instead of a completion handler. For example:

std::future<std::size_t> length =
  my_socket.async_read_some(my_buffer, asio::use_future);

Where a completion 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 completion 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.

See Also

use_future, use_future_t, Futures example (C++11).


PrevUpHomeNext