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!