[Bug c++/92268] Constraint normalization substitutes parameter too early

andrew.n.sutton at gmail dot com gcc-bugzilla@gcc.gnu.org
Tue Oct 29 18:26:00 GMT 2019


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

Andrew Sutton <andrew.n.sutton at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |andrew.n.sutton at gmail dot com

--- Comment #3 from Andrew Sutton <andrew.n.sutton at gmail dot com> ---
> [02:40] <jason> but it looks like when we normalize the forward_iterator constraint on the compound-requirement we're normalizing forward_iterator<iterator>, which is wrong -- we should be normalizing forward_iterator<T>, and then checking whether that's satisfied with iterator

> [02:40] <jason> Andrew sent me a patch to improve handling of nested requirements that I haven't looked at yet, it may help with this

This patch doesn't touch that. We're definitely not normalizing that constraint
at the point it appears. It's normalized w.r.t., substituted arguments in
do_auto_deduction.

I suppose the right thing to do is deduction vs. an unconstrained type, then
satisfaction vs. result.


More information about the Gcc-bugs mailing list