プロパティは次のように記述できます。アクションがキャンセルされた場合、そのハンドラは error で実行されることが保証されます。
たとえば、boost::asio::deadline_timerには、deadline_timer::cancel 関数のドキュメントの備考セクションで説明されているように、このプロパティがありません。そのため、タイマーの待機操作をキャンセルしても、そのコールバックがエラーなしで実行される可能性があります。
一方、このプロパティは asio ソケットにも当てはまります (少なくとも私はそう願っています:) ドキュメントにはそのようなコメントはありません)。
編集: デッドライン タイマーにこのプロパティがないことを示す疑似コード:
1# User calls timer.async_wait with a handler H which is to be
executed when the action finishes.
2# Time passes.
3# Timeout has been reached, asio internally inserts the handler H into
a queue for later execution, but with error code indicating success.
User is unaware of when this step takes place.
4# User calls cancel on the timer, thus would expect the handler to be
executed with an error code indicating failure.
5# Asio takes the handler H from the queue and executes it with error
code indicating success as set in the step #3.
この問題は、手順 4 でブール値フラグを設定し、手順 5 で確認するだけで簡単に回避できるため、問題にはなりません。