tmp/tmpvwvweypt/{from.md → to.md}
RENAMED
|
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
### Class template `is_clock` <a id="time.traits.is.clock">[[time.traits.is.clock]]</a>
|
| 2 |
+
|
| 3 |
+
``` cpp
|
| 4 |
+
template<class T> struct is_clock;
|
| 5 |
+
```
|
| 6 |
+
|
| 7 |
+
`is_clock` is a *Cpp17UnaryTypeTrait* [[meta.rqmts]] with a base
|
| 8 |
+
characteristic of `true_type` if `T` meets the *Cpp17Clock* requirements
|
| 9 |
+
[[time.clock.req]], otherwise `false_type`. For the purposes of the
|
| 10 |
+
specification of this trait, the extent to which an implementation
|
| 11 |
+
determines that a type cannot meet the *Cpp17Clock* requirements is
|
| 12 |
+
unspecified, except that as a minimum a type `T` shall not qualify as a
|
| 13 |
+
*Cpp17Clock* unless it meets all of the following conditions:
|
| 14 |
+
|
| 15 |
+
- the *qualified-id*s `T::rep`, `T::period`, `T::duration`, and
|
| 16 |
+
`T::time_point` are valid and each denotes a type [[temp.deduct]],
|
| 17 |
+
- the expression `T::is_steady` is well-formed when treated as an
|
| 18 |
+
unevaluated operand,
|
| 19 |
+
- the expression `T::now()` is well-formed when treated as an
|
| 20 |
+
unevaluated operand.
|
| 21 |
+
|
| 22 |
+
The behavior of a program that adds specializations for `is_clock` is
|
| 23 |
+
undefined.
|
| 24 |
+
|