diff options
author | Ink Open Source <ink-open-source@google.com> | 2024-03-13 08:23:34 -0700 |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2024-03-13 08:23:57 -0700 |
commit | f7337524df4f4778493952b34db333a79ca8c7bc (patch) | |
tree | 9fd1a33cbb86dc2075aac7eb74ef57204dc4817c | |
parent | 5082935c8bde9a37574b9f3702ee4034e4353f28 (diff) | |
download | ink-stroke-modeler-f7337524df4f4778493952b34db333a79ca8c7bc.tar.gz |
Automated Code Change
PiperOrigin-RevId: 615425660
-rw-r--r-- | ink_stroke_modeler/internal/validation.h | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/ink_stroke_modeler/internal/validation.h b/ink_stroke_modeler/internal/validation.h index 0b69ba5..d266a82 100644 --- a/ink_stroke_modeler/internal/validation.h +++ b/ink_stroke_modeler/internal/validation.h @@ -7,12 +7,16 @@ template <typename T> absl::Status ValidateIsFiniteNumber(T value, absl::string_view label) { - if (std::isnan(value)) { - return absl::InvalidArgumentError(absl::Substitute("$0 is NaN", label)); - } - if (std::isinf(value)) { - return absl::InvalidArgumentError( - absl::Substitute("$0 is infinite", label)); + // std::isnan(integer value) fails to compile with Lexan C++20 + // (b/329239835), so only call std::isnan for floating point values. + if constexpr (std::is_floating_point_v<T>) { + if (std::isnan(value)) { + return absl::InvalidArgumentError(absl::Substitute("$0 is NaN", label)); + } + if (std::isinf(value)) { + return absl::InvalidArgumentError( + absl::Substitute("$0 is infinite", label)); + } } return absl::OkStatus(); } |