diff options
Diffstat (limited to 'clang/test/CXX/temp/temp.constr/temp.constr.decl/var-template-decl.cpp')
-rw-r--r-- | clang/test/CXX/temp/temp.constr/temp.constr.decl/var-template-decl.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/clang/test/CXX/temp/temp.constr/temp.constr.decl/var-template-decl.cpp b/clang/test/CXX/temp/temp.constr/temp.constr.decl/var-template-decl.cpp new file mode 100644 index 00000000000..cf6874f12d3 --- /dev/null +++ b/clang/test/CXX/temp/temp.constr/temp.constr.decl/var-template-decl.cpp @@ -0,0 +1,25 @@ +// 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
\ No newline at end of file |