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

--- Comment #3 from Stephan Hartmann <stha09 at googlemail dot com> ---
Scratch comment 2, copied wrong one:

template <typename T>
struct raw_ptr {
    T* operator->() const;
    operator T*() const;
    template <typename U>
    explicit operator U*() const;
};

struct bar {};

struct foo {
    typedef void (bar::*GenFunc)();
    foo(GenFunc gen_func) {
        (bar_->*gen_func)();
    }
    raw_ptr<bar> bar_;
};

It compiles with clang-12 and clang-13.

Reply via email to