|  | Home | Libraries | People | FAQ | More | 
        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 31. WaitTraits requirements
| expression | return type | 
                  assertion/note | 
|---|---|---|
| 
                   | 
                   | 
                  Returns a  | 
| 
                   | 
                   | 
                  Returns a  |