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

Patrick Palka <ppalka at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |INVALID

--- Comment #4 from Patrick Palka <ppalka at gcc dot gnu.org> ---
GCC's behaviour is correct, I think.  Since the concept constant_expression
doesn't use its template parameter, the normal form of foo's associated
constraint is just 'true (with an empty parameter mapping)', so the
satisfaction value of with_value_constant<T> for any T is trivially true and
independent of T.

Another workaround to have the with_value_constant concept work as you expect
is to make the constant_expression concept depend on its template parameter in
a trivial way, e.g. define it as:

  template <auto V>
  concept constant_expression = requires { V; };
  • [Bug c++/96821] [concepts] In... ppalka at gcc dot gnu.org via Gcc-bugs

Reply via email to