[/
 / Copyright (c) 2003-2016 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 /
 / Distributed under the Boost Software License, Version 1.0. (See accompanying
 / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 /]

[section:WaitTraits Wait traits requirements]

In the table below, `X` denotes a wait traits class for clock type `Clock`,
where `Clock` meets the C++11 type requirements for a clock, `t` denotes a
value of type `Clock::time_point`, and `d` denotes a value of type
`Clock::duration`.

[table WaitTraits requirements
  [[expression] [return type] [assertion/note\npre/post-condition]]
  [
    [`X::to_wait_duration(d);`]
    [`Clock::duration`]
    [
      Returns the maximum duration to be used for an individual,
      implementation-defined wait operation for the duration `d`.
    ]
  ]
  [
    [`X::to_wait_duration(t);`]
    [`Clock::duration`]
    [
      Returns the maximum duration to be used for an individual,
      implementation-defined wait operation until the time point `t`.
    ]
  ]
]

[endsect]
