aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorInk Open Source <ink-open-source@google.com>2024-03-13 08:23:34 -0700
committerCopybara-Service <copybara-worker@google.com>2024-03-13 08:23:57 -0700
commitf7337524df4f4778493952b34db333a79ca8c7bc (patch)
tree9fd1a33cbb86dc2075aac7eb74ef57204dc4817c
parent5082935c8bde9a37574b9f3702ee4034e4353f28 (diff)
downloadink-stroke-modeler-f7337524df4f4778493952b34db333a79ca8c7bc.tar.gz
Automated Code Change
PiperOrigin-RevId: 615425660
-rw-r--r--ink_stroke_modeler/internal/validation.h16
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();
}