diff --git a/libcxx/include/cmath b/libcxx/include/cmath --- a/libcxx/include/cmath +++ b/libcxx/include/cmath @@ -296,6 +296,10 @@ float truncf(float x); long double truncl(long double x); +constexpr float lerp(float a, float b, float t) noexcept; // C++20 +constexpr double lerp(double a, double b, double t) noexcept; // C++20 +constexpr long double lerp(long double a, long double b, long double t) noexcept; // C++20 + } // std */ diff --git a/libcxx/test/std/numerics/c.math/c.math.lerp/c.math.lerp.pass.cpp b/libcxx/test/std/numerics/c.math/c.math.lerp/c.math.lerp.pass.cpp --- a/libcxx/test/std/numerics/c.math/c.math.lerp/c.math.lerp.pass.cpp +++ b/libcxx/test/std/numerics/c.math/c.math.lerp/c.math.lerp.pass.cpp @@ -8,10 +8,9 @@ // UNSUPPORTED: c++98, c++03, c++11, c++14, c++17 // -// constexpr float lerp(float a, float b, float t); -// constexpr double lerp(double a, double b, double t); -// constexpr long double lerp(long double a, long double b, long double t); - +// constexpr float lerp(float a, float b, float t) noexcept; +// constexpr double lerp(double a, double b, double t) noexcept; +// constexpr long double lerp(long double a, long double b, long double t) noexcept; #include #include diff --git a/libcxx/www/cxx2a_status.html b/libcxx/www/cxx2a_status.html --- a/libcxx/www/cxx2a_status.html +++ b/libcxx/www/cxx2a_status.html @@ -477,7 +477,7 @@ 3175The CommonReference requirement of concept SwappableWith is not satisfied in the examplePrague 3194ConvertibleTo prose does not match codePrague 3200midpoint should not constrain T is completePrague - 3201lerp should be marked as noexceptPrague + 3201lerp should be marked as noexceptPragueComplete 3226zoned_time constructor from string_view should accept zoned_time<Duration2, TimeZonePtr2>Prague 3233Broken requirements for shared_ptr converting constructorsPrague 3237LWG 3038 and 3190 have inconsistent PRsPrague