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

--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Another idea would be to add a new flag which chooses between brief and verbose
explanations of satisfaction failure during overload resolution. By default
just say that an overload isn't viable because type X doesn't satisfy
std::forward_iterator, but with -fsatisfy-me-harder show that it doesn't
satisfy forward_iterator because it doesn't satisfy input_iterator because it
doesn't satisfy readable because common_reference_t<T, U> is an invalid type.

That would allow you to debug unexpected satisfaction failures without having
to edit the code to add a static_assert.

The currently-commented-out code that replays the substitution could be
controlled by that new flag.

Reply via email to