Created on 2018-06-22.00:00:00 last changed 12 months ago
Proposed resolution:
This wording is relative to N4861.
Change [time.duration.cons] as indicated:
template<class Rep2> constexpr explicit duration(const Rep2& r);-1- Constraints: is_convertible_v<const Rep2&, rep> is true and
(1.1) — treat_as_floating_point_v<rep> is true or
(1.2) — treat_as_floating_point_v<Rep2> is false.
[Example: […] end example]
-?- Effects: Initializes rep_ with r.-2- Postconditions: count() == static_cast<rep>(r).
[ 2021-10-14 Approved at October 2021 virtual plenary. Status changed: Voting → WP. ]
[ 2021-09-20; Reflector poll ]
Set status to Tentatively Ready after seven votes in favour during reflector poll.
[ 2020-05-02; Daniel resyncs wording with recent working draft ]
[ 2018-06-27 after reflector discussion ]
Priority set to 3. Improved wording as result of that discussion.
Previous resolution [SUPERSEDED]:
This wording is relative to N4750.
Change [time.duration.cons] as indicated:
template<class Rep2> constexpr explicit duration(const Rep2& r);-1- Remarks: This constructor shall not participate in overload resolution unless […]
-2- Effects:Constructs an object of type durationInitializes rep_ with r.-3- Postconditions: count() == static_cast<rep>(r).
[time.duration]/4 states:
Members of duration shall not throw exceptions other than those thrown by the indicated operations on their representations.
Where representation is defined in the non-normative, brief description at [time.duration]/1:
[…] A duration has a representation which holds a count of ticks and a tick period. […]
[time.duration.cons]/2 doesn't indicate the operation undergone by its representation, merely stating a postcondition in [time.duration.cons]/3:
Effects: Constructs an object of type duration.
Postconditions: count() == static_cast<rep>(r).
I suggest this reformulation that follows the format of [time.duration.cons]/5.
Effects: Constructs an object of type duration, constructing rep_ from r.
Now it is clear why the constructor would throw.
Previous resolution [SUPERSEDED]:
This wording is relative to N4750.
Change [time.duration.cons] as indicated:
template<class Rep2> constexpr explicit duration(const Rep2& r);-1- Remarks: This constructor shall not participate in overload resolution unless […]
-2- Effects: Constructs an object of type duration, constructing rep_ from r. -3- Postconditions: count() == static_cast<rep>(r).
History | |||
---|---|---|---|
Date | User | Action | Args |
2023-11-22 15:47:43 | admin | set | status: wp -> c++23 |
2021-10-14 09:56:08 | admin | set | messages: + msg12111 |
2021-10-14 09:56:08 | admin | set | status: voting -> wp |
2021-09-29 12:57:28 | admin | set | status: ready -> voting |
2021-09-20 11:25:56 | admin | set | messages: + msg12056 |
2021-09-20 11:25:56 | admin | set | status: new -> ready |
2020-05-02 12:25:18 | admin | set | messages: + msg11255 |
2018-06-27 19:02:12 | admin | set | messages: + msg9995 |
2018-06-24 11:12:30 | admin | set | messages: + msg9982 |
2018-06-22 00:00:00 | admin | create |