From Jason Turner

[time.traits]

Diff to HTML by rtfpessoa

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 might be a class type with behavior which
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()` may
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 may 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,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.