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 35. WaitTraits requirements
expression |
return type |
assertion/note |
---|---|---|
|
|
Returns a |
|
|
Returns a |