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

--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Patrick Palka from comment #3)
> A workaround is to just remove the unneeded 'template' after the :: in this
> case.  Or is there an example where the template keyword is needed that we
> incorrectly reject?

I could not find an example.

I did find an example where the template is removed clang rejects it but gcc
does not:
struct A {
    template<typename>
    using B = int;
};
template<typename T>
T C();

template<typename T>
bool go = requires{typename decltype(C<T>())::template B<T>;};

bool a = go<int>;

Reply via email to