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

Jonathan Wakely <redi at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|ice-on-valid-code           |ice-on-invalid-code
      Known to work|                            |10.0
             Blocks|                            |67491

--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> ---
With an updated testcase using C++2a syntax there's no ICE on current trunk:

template<typename, typename> constexpr bool same = false;
template<typename T> constexpr bool same<T, T> = true;

template<typename T, typename U> concept same_as = same<T, U>;

template<typename T>
struct foo {
    T t;

    template<typename U>
    void set(U&& u) requires requires { { static_cast<U&&>(u)} -> same_as<T>; }
    {
        t = static_cast<U&&>(u);
    }
};

int main()
{
    auto w = foo<int>{5};
    w.set(5.0f);
}


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67491
[Bug 67491] [meta-bug] concepts issues

Reply via email to