1 // RUN: %clang_cc1 -std=c++2a -emit-pch %s -o %t 2 // RUN: %clang_cc1 -std=c++2a -include-pch %t -verify %s 3 4 // expected-no-diagnostics 5 6 #ifndef HEADER 7 #define HEADER 8 9 template <typename T, typename U> 10 concept not_same_as = true; 11 12 template <int Kind> 13 struct subrange { 14 template <not_same_as<int> R> 15 subrange(R) requires(Kind == 0); 16 17 template <not_same_as<int> R> 18 subrange(R) requires(Kind != 0); 19 }; 20 21 template <typename R> 22 subrange(R) -> subrange<42>; 23 main()24int main() { 25 int c; 26 subrange s(c); 27 } 28 29 #endif 30