var-template-decl.cpp 550 B

12345678910111213141516171819202122232425
  1. // RUN: %clang_cc1 -std=c++2a -x c++ -verify %s
  2. namespace nodiag {
  3. struct B {
  4. template <typename T> requires bool(T())
  5. static int A;
  6. };
  7. template <typename U> requires bool(U())
  8. int B::A = int(U());
  9. } // end namespace nodiag
  10. namespace diag {
  11. struct B {
  12. template <typename T> requires bool(T()) // expected-note{{previous template declaration is here}}
  13. static int A;
  14. };
  15. template <typename U> requires !bool(U()) // expected-error{{requires clause differs in template redeclaration}}
  16. int B::A = int(U());
  17. } // end namespace diag