| // RUN: %clang_cc1 -std=c++2a -x c++ -verify %s |
| |
| namespace nodiag { |
| |
| struct B { |
| template <typename T> requires bool(T()) |
| static int A; |
| }; |
| |
| template <typename U> requires bool(U()) |
| int B::A = int(U()); |
| |
| } // end namespace nodiag |
| |
| namespace diag { |
| |
| struct B { |
| template <typename T> requires bool(T()) // expected-note{{previous template declaration is here}} |
| static int A; |
| }; |
| |
| template <typename U> requires !bool(U()) // expected-error{{requires clause differs in template redeclaration}} |
| int B::A = int(U()); |
| |
| } // end namespace diag |