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

--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> ---
This is not a bug, you've just transformed your working code to use a
requires-clause incorrectly.

This works fine:

    template <typename F, typename DecayF = std::decay_t<F>>
        requires (!std::derived_from<DecayF, Base>)
                 && std::constructible_from<DecayF, F>
    Base(F&&) {}

Reply via email to