Commit 20ef31733600c6fbaaa9660297962aee4f940704
1 parent
753b86f9
Refactor `Integer` constructor: replace manual comparisons with `std::cmp_greate…
…r` for cleaner and more concise overflow checks.
Showing
1 changed file
with
4 additions
and
4 deletions
libqpdf/qpdf/QPDFObjectHandle_private.hh
| @@ -305,10 +305,10 @@ namespace qpdf | @@ -305,10 +305,10 @@ namespace qpdf | ||
| 305 | explicit Integer(std::integral auto value) : | 305 | explicit Integer(std::integral auto value) : |
| 306 | Integer(static_cast<long long>(value)) | 306 | Integer(static_cast<long long>(value)) |
| 307 | { | 307 | { |
| 308 | - if constexpr ( | ||
| 309 | - std::numeric_limits<decltype(value)>::max() > | ||
| 310 | - std::numeric_limits<long long>::max()) { | ||
| 311 | - if (value > std::numeric_limits<long long>::max()) { | 308 | + if constexpr (std::cmp_greater( |
| 309 | + std::numeric_limits<decltype(value)>::max(), | ||
| 310 | + std::numeric_limits<long long>::max())) { | ||
| 311 | + if (std::cmp_greater(value, std::numeric_limits<long long>::max())) { | ||
| 312 | throw std::overflow_error("overflow constructing Integer"); | 312 | throw std::overflow_error("overflow constructing Integer"); |
| 313 | } | 313 | } |
| 314 | } | 314 | } |