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

--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> ---
The same commit also caused this to be rejected with -std=gnu++14 -fconcepts:

template<typename MemPtr>
struct result_of;

template<typename Res, typename Class>
struct result_of<Res Class::*>
{
  using type = void;
};

struct thread {
  void join() { };
};

using R = typename result_of<void (thread::*)()>::type;


match.cc:5:12: error: template parameters not deducible in partial
specialization:
    5 |     struct result_of<Res Class::*>
      |            ^~~~~~~~~~~~~~~~~~~~~~~
match.cc:5:12: note:         'Class'
match.cc:14:51: error: invalid use of incomplete type 'struct result_of<void
(thread::*)()>'
   14 | using R = typename result_of<void (thread::*)()>::type;
      |                                                   ^~~~
match.cc:2:12: note: declaration of 'struct result_of<void (thread::*)()>'
    2 |     struct result_of;
      |            ^~~~~~~~~

Reply via email to