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

            Bug ID: 105967
           Summary: Forming a pointer to ref-qualified member function
                    using a function typedef ignores the qualifier
           Product: gcc
           Version: 12.1.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: iamsupermouse at mail dot ru
  Target Milestone: ---

Consider following code:

    #include <type_traits>

    struct A {};
    using F = void() &; 
    static_assert(std::is_same_v<F A::*, void(A::*)() &>);

GCC fails the static_assert, while Clang and MSVC accept it.

Apparently `F A::*` becomes `void(A::*)()`, without `&`. Same happens for `&&`.

Reply via email to