annotate gcc/testsuite/g++.dg/concepts/traits2.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1 // { dg-do compile { target c++17 } }
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2 // { dg-options "-fconcepts" }
111
kono
parents:
diff changeset
3
kono
parents:
diff changeset
4 template<typename T>
kono
parents:
diff changeset
5 concept bool Nothrow_assignable() { return __has_nothrow_assign(T); }
kono
parents:
diff changeset
6
kono
parents:
diff changeset
7 template<typename T>
kono
parents:
diff changeset
8 concept bool Nothrow_constructible() { return __has_nothrow_constructor(T); }
kono
parents:
diff changeset
9
kono
parents:
diff changeset
10 template<typename T>
kono
parents:
diff changeset
11 concept bool Nothrow_copyable() { return __has_nothrow_copy(T); }
kono
parents:
diff changeset
12
kono
parents:
diff changeset
13 template<typename T>
kono
parents:
diff changeset
14 concept bool Trivially_assignable() { return __has_trivial_assign(T); }
kono
parents:
diff changeset
15
kono
parents:
diff changeset
16 template<typename T>
kono
parents:
diff changeset
17 concept bool Trivially_constructible() { return __has_trivial_constructor(T); }
kono
parents:
diff changeset
18
kono
parents:
diff changeset
19 template<typename T>
kono
parents:
diff changeset
20 concept bool Trivially_copyable() { return __has_trivial_copy(T); }
kono
parents:
diff changeset
21
kono
parents:
diff changeset
22 template<typename T>
kono
parents:
diff changeset
23 concept bool Trivially_destructible() { return __has_trivial_destructor(T); }
kono
parents:
diff changeset
24
kono
parents:
diff changeset
25 template<typename T>
kono
parents:
diff changeset
26 concept bool Dynamically_destructible() { return __has_virtual_destructor(T); }
kono
parents:
diff changeset
27
kono
parents:
diff changeset
28 template<typename T>
kono
parents:
diff changeset
29 concept bool Abstract() { return __is_abstract(T); }
kono
parents:
diff changeset
30
kono
parents:
diff changeset
31 template<typename T>
kono
parents:
diff changeset
32 concept bool Polymorphic() { return __is_polymorphic(T); }
kono
parents:
diff changeset
33
kono
parents:
diff changeset
34 template<typename T>
kono
parents:
diff changeset
35 concept bool Class() { return __is_class(T); }
kono
parents:
diff changeset
36
kono
parents:
diff changeset
37 template<typename T>
kono
parents:
diff changeset
38 concept bool Empty() { return __is_empty(T); }
kono
parents:
diff changeset
39
kono
parents:
diff changeset
40 template<typename T>
kono
parents:
diff changeset
41 concept bool Enum() { return __is_enum(T); }
kono
parents:
diff changeset
42
kono
parents:
diff changeset
43 template<typename T>
kono
parents:
diff changeset
44 concept bool Final() { return __is_final(T); }
kono
parents:
diff changeset
45
kono
parents:
diff changeset
46 template<typename T>
kono
parents:
diff changeset
47 concept bool Literal_type() { return __is_literal_type(T); }
kono
parents:
diff changeset
48
kono
parents:
diff changeset
49 template<typename T>
kono
parents:
diff changeset
50 concept bool Pod() { return __is_pod(T); }
kono
parents:
diff changeset
51
kono
parents:
diff changeset
52 template<typename T>
kono
parents:
diff changeset
53 concept bool Standard_layout() { return __is_standard_layout(T); }
kono
parents:
diff changeset
54
kono
parents:
diff changeset
55 template<typename T>
kono
parents:
diff changeset
56 concept bool Trivial() { return __is_trivial(T); }
kono
parents:
diff changeset
57
kono
parents:
diff changeset
58 template<typename T>
kono
parents:
diff changeset
59 concept bool Union() { return __is_union(T); }
kono
parents:
diff changeset
60
kono
parents:
diff changeset
61 template<Nothrow_assignable T> void f1();
kono
parents:
diff changeset
62 template<Nothrow_copyable T> void f2();
kono
parents:
diff changeset
63 template<Nothrow_constructible T> void f3();
kono
parents:
diff changeset
64 template<Trivially_assignable T> void f4();
kono
parents:
diff changeset
65 template<Trivially_copyable T> void f5();
kono
parents:
diff changeset
66 template<Trivially_constructible T> void f6();
kono
parents:
diff changeset
67 template<Trivially_destructible T> void f7();
kono
parents:
diff changeset
68 template<Dynamically_destructible T> void f8();
kono
parents:
diff changeset
69 template<Class T> void f9();
kono
parents:
diff changeset
70 template<Empty T> void f10();
kono
parents:
diff changeset
71 template<Standard_layout T> void f11();
kono
parents:
diff changeset
72 template<Pod T> void f12();
kono
parents:
diff changeset
73 template<Trivial T> void f13();
kono
parents:
diff changeset
74 template<Polymorphic T> void f14();
kono
parents:
diff changeset
75 template<Abstract T> void f15();
kono
parents:
diff changeset
76 template<Final T> void f16();
kono
parents:
diff changeset
77 template<Union T> void f17();
kono
parents:
diff changeset
78 template<Enum T> void f18();
kono
parents:
diff changeset
79
kono
parents:
diff changeset
80
kono
parents:
diff changeset
81 int main() {
kono
parents:
diff changeset
82 f1<void>(); // { dg-error "cannot call" }
kono
parents:
diff changeset
83 f2<void>(); // { dg-error "cannot call" }
kono
parents:
diff changeset
84 f3<void>(); // { dg-error "cannot call" }
kono
parents:
diff changeset
85 f4<void>(); // { dg-error "cannot call" }
kono
parents:
diff changeset
86 f5<void>(); // { dg-error "cannot call" }
kono
parents:
diff changeset
87 f6<void>(); // { dg-error "cannot call" }
kono
parents:
diff changeset
88 f7<void>(); // { dg-error "cannot call" }
kono
parents:
diff changeset
89 f8<void>(); // { dg-error "cannot call" }
kono
parents:
diff changeset
90 f9<void>(); // { dg-error "cannot call" }
kono
parents:
diff changeset
91 f10<void>(); // { dg-error "cannot call" }
kono
parents:
diff changeset
92 f11<void>(); // { dg-error "cannot call" }
kono
parents:
diff changeset
93 f12<void>(); // { dg-error "cannot call" }
kono
parents:
diff changeset
94 f13<void>(); // { dg-error "cannot call" }
kono
parents:
diff changeset
95 f14<void>(); // { dg-error "cannot call" }
kono
parents:
diff changeset
96 f15<void>(); // { dg-error "cannot call" }
kono
parents:
diff changeset
97 f16<void>(); // { dg-error "cannot call" }
kono
parents:
diff changeset
98 f17<void>(); // { dg-error "cannot call" }
kono
parents:
diff changeset
99 }