From f7337524df4f4778493952b34db333a79ca8c7bc Mon Sep 17 00:00:00 2001 From: Ink Open Source Date: Wed, 13 Mar 2024 08:23:34 -0700 Subject: Automated Code Change PiperOrigin-RevId: 615425660 --- ink_stroke_modeler/internal/validation.h | 16 ++++++++++------ 1 file 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 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) { + 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(); } -- cgit v1.2.3