Mercurial > hg > CbC > CbC_gcc
comparison gcc/testsuite/g++.dg/cpp2a/concepts-traits1.C @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
131:84e7813d76e9 | 145:1830386684a0 |
---|---|
1 // { dg-options "-std=c++2a" } | |
2 | |
3 template<typename T> | |
4 concept Nothrow_assignable = __has_nothrow_assign(T); | |
5 | |
6 template<typename T> | |
7 concept Nothrow_constructible = __has_nothrow_constructor(T); | |
8 | |
9 template<typename T> | |
10 concept Nothrow_copyable = __has_nothrow_copy(T); | |
11 | |
12 template<typename T> | |
13 concept Trivially_assignable = __has_trivial_assign(T); | |
14 | |
15 template<typename T> | |
16 concept Trivially_constructible = __has_trivial_constructor(T); | |
17 | |
18 template<typename T> | |
19 concept Trivially_copyable = __has_trivial_copy(T); | |
20 | |
21 template<typename T> | |
22 concept Trivially_destructible = __has_trivial_destructor(T); | |
23 | |
24 template<typename T> | |
25 concept Dynamically_destructible = __has_virtual_destructor(T); | |
26 | |
27 template<typename T> | |
28 concept Abstract = __is_abstract(T); | |
29 | |
30 template<typename T> | |
31 concept Polymorphic = __is_polymorphic(T); | |
32 | |
33 template<typename T> | |
34 concept Class = __is_class(T); | |
35 | |
36 template<typename T> | |
37 concept Empty = __is_empty(T); | |
38 | |
39 template<typename T> | |
40 concept Enum = __is_enum(T); | |
41 | |
42 template<typename T> | |
43 concept Final = __is_final(T); | |
44 | |
45 template<typename T> | |
46 concept Literal_type = __is_literal_type(T); | |
47 | |
48 template<typename T> | |
49 concept Pod = __is_pod(T); | |
50 | |
51 template<typename T> | |
52 concept Standard_layout = __is_standard_layout(T); | |
53 | |
54 template<typename T> | |
55 concept Trivial = __is_trivial(T); | |
56 | |
57 template<typename T> | |
58 concept Union = __is_union(T); | |
59 | |
60 template<Nothrow_assignable T> void f1() { } | |
61 template<Nothrow_copyable T> void f2() { } | |
62 template<Nothrow_constructible T> void f3() { } | |
63 template<Trivially_assignable T> void f4() { } | |
64 template<Trivially_copyable T> void f5() { } | |
65 template<Trivially_constructible T> void f6() { } | |
66 template<Trivially_destructible T> void f7() { } | |
67 template<Dynamically_destructible T> void f8() { } | |
68 template<Class T> void f9() { } | |
69 template<Empty T> void f10() { } | |
70 template<Standard_layout T> void f11() { } | |
71 template<Pod T> void f12() { } | |
72 template<Trivial T> void f13() { } | |
73 template<Polymorphic T> void f14() { } | |
74 template<Abstract T> void f15() { } | |
75 template<Final T> void f16() { } | |
76 template<Union T> void f17() { } | |
77 template<Enum T> void f18() { } | |
78 | |
79 int main() { | |
80 f1<void>(); // { dg-error "" } | |
81 f2<void>(); // { dg-error "" } | |
82 f3<void>(); // { dg-error "" } | |
83 f4<void>(); // { dg-error "" } | |
84 f5<void>(); // { dg-error "" } | |
85 f6<void>(); // { dg-error "" } | |
86 f7<void>(); // { dg-error "" } | |
87 f8<void>(); // { dg-error "" } | |
88 f9<void>(); // { dg-error "" } | |
89 f10<void>(); // { dg-error "" } | |
90 f11<void>(); // { dg-error "" } | |
91 f12<void>(); // { dg-error "" } | |
92 f13<void>(); // { dg-error "" } | |
93 f14<void>(); // { dg-error "" } | |
94 f15<void>(); // { dg-error "" } | |
95 f16<void>(); // { dg-error "" } | |
96 f17<void>(); // { dg-error "" } | |
97 } |