https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102419
Richard Biener changed:
What|Removed |Added
Priority|P3 |P2
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102419
--- Comment #5 from Patrick Palka ---
(In reply to Arthur O'Dwyer from comment #4)
> > IMHO Clang/MSVC are clearly misbehaving here -- when evaluating the
> > concept-id X, they appear to be substituting {int} into X's
> >
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102419
--- Comment #4 from Arthur O'Dwyer ---
> IMHO Clang/MSVC are clearly misbehaving here -- when evaluating the
> concept-id X, they appear to be substituting {int} into X's
> constraint-expression instead of into the normal form of X's
>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102419
--- Comment #3 from Patrick Palka ---
And similarly for:
template concept Y = true;
template concept X = Y;
static_assert(!X);
GCC rejects and Clang/MSVC accept. IMHO Clang/MSVC are clearly misbehaving
here -- when evaluating the
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102419
--- Comment #2 from Patrick Palka ---
Note that you can make GCC effectively behave like Clang/MSVC here changing Y's
constraint-expression to trivially depend on its template parameter:
template concept Y = requires { typename U; };
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102419
Patrick Palka changed:
What|Removed |Added
CC||ppalka at gcc dot gnu.org
--- Comment
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102419
Richard Biener changed:
What|Removed |Added
Keywords||rejects-valid
Known to fail|