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

Jonathan Wakely <redi at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |ASSIGNED
      Known to work|                            |7.3.0
           Keywords|diagnostic                  |rejects-valid
   Last reconfirmed|                            |2019-03-19
          Component|c++                         |libstdc++
           Assignee|unassigned at gcc dot gnu.org      |redi at gcc dot gnu.org
     Ever confirmed|0                           |1
            Summary|G++ gives cryptic error     |[8/9 Regression] G++ gives
                   |instead of incomplete type  |cryptic error instead of
                   |                            |incomplete type
   Target Milestone|---                         |8.4
      Known to fail|                            |8.3.0, 9.0

--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> ---
(In reply to Hedayat Vatankhah from comment #2)
> Probably, __is_invocable<> should not signal an error if it finds an
> incomplete type, or it should be replaced with a construct that doesn't.

It's not possible for a type trait to give a different answer depending whether
a type is complete or not. That would violate the One-Definition Rule.

I'd forgotten about this issue because the component wasn't libstdc++. I will
remove the is_invocable checks.

Reply via email to