llvm-project
44 строки · 1.2 Кб
1// RUN: %clang_cc1 -std=c++2a -x c++ %s -verify
2// expected-no-diagnostics
3
4template<typename T, typename U=void>5concept C = true;6
7namespace ns {8template<typename T, typename U=void>9concept D = true;10}
11
12void foo1(C auto a,13C<int> auto b,14ns::D auto c,15ns::D<int> auto d,16const C auto e,17const C<int> auto f,18const ns::D auto g,19const ns::D<int> auto h);20void foo2(C auto a);21void foo3(C<int> auto b);22void foo4(ns::D auto c);23void foo5(ns::D<int> auto d);24void foo6(const C auto e);25void foo7(const C<int> auto f);26void foo8(const ns::D auto g);27void foo9(const ns::D<int> auto h);28
29struct S1 { S1(C auto a,30C<int> auto b,31ns::D auto c,32ns::D<int> auto d,33const C auto e,34const C<int> auto f,35const ns::D auto g,36const ns::D<int> auto h); };37struct S2 { S2(C auto a); };38struct S3 { S3(C<int> auto b); };39struct S4 { S4(ns::D auto c); };40struct S5 { S5(ns::D<int> auto d); };41struct S6 { S6(const C auto e); };42struct S7 { S7(const C<int> auto f); };43struct S8 { S8(const ns::D auto g); };44struct S9 { S9(const ns::D<int> auto h); };