http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58569

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
          Component|c++                         |libstdc++
           Assignee|unassigned at gcc dot gnu.org      |redi at gcc dot gnu.org

--- Comment #16 from Jonathan Wakely <redi at gcc dot gnu.org> ---
(In reply to Daniel Krügler from comment #14)
> Thanks. I think the actual problem can be resolve by moving
> 
>   template<typename CallRes, typename Res1>
>     struct CheckResult
>     : is_convertible<CallRes, Res1> { };
> 
> out of the template. When this template is instantiated within the outer
> class, the result is still an incomplete type. I think there was a core
> issue with that out come.

OK, thanks, I'll do that.

(In reply to Daniel Krügler from comment #15)
> (In reply to Daniel Krügler from comment #14)
> Furthermore the name hiding happening here
> 
> template<typename F, typename R = Requires<Callable<F>>>
>     Function(F);
> 
> needs to be fixed (it was not in your previous example):
> 
> template<typename F, typename = Requires<Callable<F>>>
>     Function(F);

Yes, I think my X server is interacting badly with the Windows clipboard, I
pasted an older version of the code with the shadowed, not what I thought I'd
copied, sorry again!

Reply via email to