llvm-project

Форк
0
/
cxx2a-abbreviated-templates.cpp 
44 строки · 1.2 Кб
1
// RUN: %clang_cc1 -std=c++2a -x c++ %s -verify
2
// expected-no-diagnostics
3

4
template<typename T, typename U=void>
5
concept C = true;
6

7
namespace ns {
8
  template<typename T, typename U=void>
9
  concept D = true;
10
}
11

12
void 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);
20
void foo2(C auto a);
21
void foo3(C<int> auto b);
22
void foo4(ns::D auto c);
23
void foo5(ns::D<int> auto d);
24
void foo6(const C auto e);
25
void foo7(const C<int> auto f);
26
void foo8(const ns::D auto g);
27
void foo9(const ns::D<int> auto h);
28

29
struct 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); };
37
struct S2 { S2(C auto a); };
38
struct S3 { S3(C<int> auto b); };
39
struct S4 { S4(ns::D auto c); };
40
struct S5 { S5(ns::D<int> auto d); };
41
struct S6 { S6(const C auto e); };
42
struct S7 { S7(const C<int> auto f); };
43
struct S8 { S8(const ns::D auto g); };
44
struct S9 { S9(const ns::D<int> auto h); };

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.