[Bug c++/85866] [8/9 Regression] too few arguments to function when sfinae on calling pointer to member function

redi at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue May 22 14:10:00 GMT 2018


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

--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Reduced:

  template<typename _Tp, typename _Up = _Tp&&>
    _Up
    __declval(int);

  template<typename _Tp>
    _Tp
    __declval(long);

  template<typename _Tp>
    auto declval() noexcept -> decltype(__declval<_Tp>(0));

    template<typename...>
    using void_t = void;

    template<typename U, typename V,
    void_t<decltype(
        (declval<U>().*declval<V>())()
    )>* = nullptr>
    void boom(){}

    struct Foo {
        void bar(){}
    };

    int main() {
        boom<Foo, decltype(&Foo::bar)>();
    }


More information about the Gcc-bugs mailing list