tmp/tmp3cbc383m/{from.md → to.md}
RENAMED
|
@@ -32,22 +32,22 @@ template<class Rep>
|
|
| 32 |
};
|
| 33 |
```
|
| 34 |
|
| 35 |
The `duration` template uses the `duration_values` trait to construct
|
| 36 |
special values of the duration’s representation (`Rep`). This is done
|
| 37 |
-
because the representation
|
| 38 |
requires some other implementation to return these special values. In
|
| 39 |
that case, the author of that class type should specialize
|
| 40 |
`duration_values` to return the indicated values.
|
| 41 |
|
| 42 |
``` cpp
|
| 43 |
static constexpr Rep zero() noexcept;
|
| 44 |
```
|
| 45 |
|
| 46 |
*Returns:* `Rep(0)`.
|
| 47 |
|
| 48 |
-
[*Note 1*: `Rep(0)` is specified instead of `Rep()` because `Rep()`
|
| 49 |
have some other meaning, such as an uninitialized value. — *end note*]
|
| 50 |
|
| 51 |
*Remarks:* The value returned shall be the additive identity.
|
| 52 |
|
| 53 |
``` cpp
|
|
@@ -86,11 +86,11 @@ multiple of `Period1::den` and `Period2::den`. — *end note*]
|
|
| 86 |
[*Note 2*: The `typedef` name `type` is a synonym for the `duration`
|
| 87 |
with the largest tick `period` possible where both `duration` arguments
|
| 88 |
will convert to it without requiring a division operation. The
|
| 89 |
representation of this type is intended to be able to hold any value
|
| 90 |
resulting from this conversion with no truncation error, although
|
| 91 |
-
floating-point durations
|
| 92 |
|
| 93 |
``` cpp
|
| 94 |
template<class Clock, class Duration1, class Duration2>
|
| 95 |
struct common_type<chrono::time_point<Clock, Duration1>, chrono::time_point<Clock, Duration2>> {
|
| 96 |
using type = chrono::time_point<Clock, common_type_t<Duration1, Duration2>>;
|
|
@@ -116,11 +116,11 @@ unspecified, except that as a minimum a type `T` shall not qualify as a
|
|
| 116 |
*Cpp17Clock* unless it meets all of the following conditions:
|
| 117 |
|
| 118 |
- the *qualified-id*s `T::rep`, `T::period`, `T::duration`, and
|
| 119 |
`T::time_point` are valid and each denotes a type [[temp.deduct]],
|
| 120 |
- the expression `T::is_steady` is well-formed when treated as an
|
| 121 |
-
unevaluated operand,
|
| 122 |
- the expression `T::now()` is well-formed when treated as an
|
| 123 |
unevaluated operand.
|
| 124 |
|
| 125 |
The behavior of a program that adds specializations for `is_clock` is
|
| 126 |
undefined.
|
|
|
|
| 32 |
};
|
| 33 |
```
|
| 34 |
|
| 35 |
The `duration` template uses the `duration_values` trait to construct
|
| 36 |
special values of the duration’s representation (`Rep`). This is done
|
| 37 |
+
because the representation can be a class type with behavior that
|
| 38 |
requires some other implementation to return these special values. In
|
| 39 |
that case, the author of that class type should specialize
|
| 40 |
`duration_values` to return the indicated values.
|
| 41 |
|
| 42 |
``` cpp
|
| 43 |
static constexpr Rep zero() noexcept;
|
| 44 |
```
|
| 45 |
|
| 46 |
*Returns:* `Rep(0)`.
|
| 47 |
|
| 48 |
+
[*Note 1*: `Rep(0)` is specified instead of `Rep()` because `Rep()` can
|
| 49 |
have some other meaning, such as an uninitialized value. — *end note*]
|
| 50 |
|
| 51 |
*Remarks:* The value returned shall be the additive identity.
|
| 52 |
|
| 53 |
``` cpp
|
|
|
|
| 86 |
[*Note 2*: The `typedef` name `type` is a synonym for the `duration`
|
| 87 |
with the largest tick `period` possible where both `duration` arguments
|
| 88 |
will convert to it without requiring a division operation. The
|
| 89 |
representation of this type is intended to be able to hold any value
|
| 90 |
resulting from this conversion with no truncation error, although
|
| 91 |
+
floating-point durations can have round-off errors. — *end note*]
|
| 92 |
|
| 93 |
``` cpp
|
| 94 |
template<class Clock, class Duration1, class Duration2>
|
| 95 |
struct common_type<chrono::time_point<Clock, Duration1>, chrono::time_point<Clock, Duration2>> {
|
| 96 |
using type = chrono::time_point<Clock, common_type_t<Duration1, Duration2>>;
|
|
|
|
| 116 |
*Cpp17Clock* unless it meets all of the following conditions:
|
| 117 |
|
| 118 |
- the *qualified-id*s `T::rep`, `T::period`, `T::duration`, and
|
| 119 |
`T::time_point` are valid and each denotes a type [[temp.deduct]],
|
| 120 |
- the expression `T::is_steady` is well-formed when treated as an
|
| 121 |
+
unevaluated operand [[term.unevaluated.operand]],
|
| 122 |
- the expression `T::now()` is well-formed when treated as an
|
| 123 |
unevaluated operand.
|
| 124 |
|
| 125 |
The behavior of a program that adds specializations for `is_clock` is
|
| 126 |
undefined.
|