| // PR c++/103341 |
| // { dg-do compile { target c++20 } } |
| |
| template<class T, class U> concept same_as = __is_same(T, U); |
| template<class T> same_as<T> auto v1a = 1; |
| template<class T> same_as<T> auto v1b = T(); |
| template<class T> same_as<T*> auto v2a = 1; // { dg-error "constraints" } |
| template<class T> same_as<T*> auto v2b = T(); // { dg-error "constraints" } |
| |
| template int v1a<int>; |
| template int v1b<int>; |
| template int v2a<int>; // { dg-message "required from here" } |
| template int v2b<int>; // { dg-message "required from here" } |