##### basic_waitable_timer::cancel (1 of 2 overloads)

Cancel any asynchronous operations that are waiting on the timer.

    std::size_t cancel();

This function forces the completion of any pending asynchronous wait operations against the timer. The handler for each cancelled operation will be invoked with the `asio::error::operation_aborted` error code.

Cancelling the timer does not change the expiry time.

###### Return Value

The number of asynchronous operations that were cancelled.

###### Exceptions

asio::system_error

  Thrown on failure.

###### Remarks

If the timer has already expired when `cancel()` is called, then the handlers for asynchronous wait operations will:

- have already been invoked; or
- have been queued for invocation in the near future.

These handlers can no longer be cancelled, and therefore are passed an error code that indicates the successful completion of the wait operation.