44 lines · cpp
1// RUN: %clang_cc1 -std=c++2a -x c++ %s -verify2// expected-no-diagnostics3 4template<typename T, typename U=void>5concept C = true;6 7namespace ns {8 template<typename T, typename U=void>9 concept D = true;10}11 12void foo1(C auto a,13 C<int> auto b,14 ns::D auto c,15 ns::D<int> auto d,16 const C auto e,17 const C<int> auto f,18 const ns::D auto g,19 const 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,30 C<int> auto b,31 ns::D auto c,32 ns::D<int> auto d,33 const C auto e,34 const C<int> auto f,35 const ns::D auto g,36 const 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); };