Breakdown the "seconds + femtoseconds => time_point" overflow issue. #200
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When
cctz::parse()
produces seconds+femtoseconds values that cannotbe represented in the output
time_point<D>
it should returnfalse
.Here we add overloads of
join_seconds()
that break the overflow issuedown into four cases, three of which are implemented and have test cases.
The fourth overload (for 1/N duration ratios) is yet to be implemented,
so its test cases are currently commented out, but they provide a guide
to what remains to be done. See #199.
Also, clarify that the
ToUnixSeconds()
implementation requires thatthe
std::chrono::system_clock
uses the Unix epoch in order to avoidarithmetic overflow.
This change is