https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101870

            Bug ID: 101870
           Summary: std::lerp is missing Arithmetic overloads
           Product: gcc
           Version: 11.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: konstantinua00 at gmail dot com
  Target Milestone: ---

According to C++20 standard paragraph 20.8.1.2, std::lerp is not an exception
to expansion of acceptable parameters to integral and mixed floating point
types.
I.e. overload 4) from https://en.cppreference.com/w/cpp/numeric/lerp is
missing.

Example code (compile with -std=c++20):

#include<cmath>

int main()
{
    std::lerp(int{},int{},int{});
    std::lerp(float{}, double{}, (long double)0);
}

https://godbolt.org/z/3PqP9M4GE

Current behaviour:
Does not compile with: "error: call of overloaded 'lerp(int, int, int)' is
ambiguous" and "error: call of overloaded 'lerp(float, double, long double)' is
ambiguous".

Expected behaviour:
Compilation with no issues.

Reply via email to