The basic_waitable_timer
template uses wait traits to allow
programs to customize wait
and async_wait
behavior.
[Note: Possible uses of wait traits include:
— To
enable timers based on non-realtime clocks.
— Determining how quickly
wallclock-based timers respond to system time changes.
— Correcting for
errors or rounding timeouts to boundaries.
— Preventing duration overflow.
That is, a program may set a timer's expiry e
to be Clock::max()
(meaning never reached) or Clock::min()
(meaning always in the
past). As a result, computing the duration until timer expiry as e
- Clock::now()
may cause overflow. —end note]
For a type Clock
meeting the Clock
requirements
(C++Std [time.clock.req]), a type X
meets the WaitTraits
requirements if it satisfies the requirements listed below.
In the table below, t
denotes a (possibly const) value of type
Clock::time_point
; and d
denotes a (possibly const)
value of type Clock::duration
.
Table 33. WaitTraits requirements
expression |
return type |
assertion/note |
---|---|---|
|
|
Returns a |
|
|
Returns a |