[Bug c++/105967] New: Forming a pointer to ref-qualified member function using a function typedef ignores the qualifier

iamsupermouse at mail dot ru gcc-bugzilla@gcc.gnu.org
Tue Jun 14 07:25:54 GMT 2022


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 `&&`.


More information about the Gcc-bugs mailing list