| // { dg-do compile { target c++20 } } | |
| template <class> struct all_same { | |
| static constexpr bool value = true; | |
| }; | |
| template <class T> | |
| concept Assignable = requires(T t) | |
| { | |
| requires all_same<decltype(t = 0)>::value; | |
| }; | |
| template <class I> | |
| requires (!Assignable<I>) | |
| int dispatch(); | |
| template <class I> | |
| requires Assignable<I> | |
| void dispatch(); | |
| int main() { dispatch<int *>(); } |