1646395bbcaa849c94bc2a3246c71d809ca719f01Argyrios Kyrtzidis// Header for PCH test cxx-traits.cpp
2646395bbcaa849c94bc2a3246c71d809ca719f01Argyrios Kyrtzidis
3176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesnamespace n {
4176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines
5646395bbcaa849c94bc2a3246c71d809ca719f01Argyrios Kyrtzidistemplate<typename _Tp>
6651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesstruct __is_pod { // expected-warning {{keyword '__is_pod' will be made available as an identifier for the remainder of the translation unit}}
7646395bbcaa849c94bc2a3246c71d809ca719f01Argyrios Kyrtzidis  enum { __value };
8646395bbcaa849c94bc2a3246c71d809ca719f01Argyrios Kyrtzidis};
9646395bbcaa849c94bc2a3246c71d809ca719f01Argyrios Kyrtzidis
10646395bbcaa849c94bc2a3246c71d809ca719f01Argyrios Kyrtzidistemplate<typename _Tp>
11651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesstruct __is_empty { // expected-warning {{keyword '__is_empty' will be made available as an identifier for the remainder of the translation unit}}
12646395bbcaa849c94bc2a3246c71d809ca719f01Argyrios Kyrtzidis  enum { __value };
13646395bbcaa849c94bc2a3246c71d809ca719f01Argyrios Kyrtzidis};
144ca8ac2e61c37ddadf37024af86f3e1019af8532Douglas Gregor
154ca8ac2e61c37ddadf37024af86f3e1019af8532Douglas Gregortemplate<typename T, typename ...Args>
164ca8ac2e61c37ddadf37024af86f3e1019af8532Douglas Gregorstruct is_trivially_constructible {
174ca8ac2e61c37ddadf37024af86f3e1019af8532Douglas Gregor  static const bool value = __is_trivially_constructible(T, Args...);
184ca8ac2e61c37ddadf37024af86f3e1019af8532Douglas Gregor};
19176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines
20176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_abstract {};  // expected-warning {{made available}}
21176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_arithmetic {};  // expected-warning {{made available}}
22176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_array {};  // expected-warning {{made available}}
234967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarstruct __is_assignable {};  // expected-warning {{made available}}
24176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_base_of {};  // expected-warning {{made available}}
25176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_class {};  // expected-warning {{made available}}
26176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_complete_type {};  // expected-warning {{made available}}
27176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_compound {};  // expected-warning {{made available}}
28176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_const {};  // expected-warning {{made available}}
29176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_constructible {};  // expected-warning {{made available}}
30176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_convertible {};  // expected-warning {{made available}}
31176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_convertible_to {};  // expected-warning {{made available}}
32176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_destructible {};  // expected-warning {{made available}}
33176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_enum {};  // expected-warning {{made available}}
34176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_floating_point {};  // expected-warning {{made available}}
35176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_final {};  // expected-warning {{made available}}
36176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_function {};  // expected-warning {{made available}}
37176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_fundamental {};  // expected-warning {{made available}}
38176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_integral {};  // expected-warning {{made available}}
39176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_interface_class {};  // expected-warning {{made available}}
40176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_literal {};  // expected-warning {{made available}}
41176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_lvalue_expr {};  // expected-warning {{made available}}
42176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_lvalue_reference {};  // expected-warning {{made available}}
43176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_member_function_pointer {};  // expected-warning {{made available}}
44176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_member_object_pointer {};  // expected-warning {{made available}}
45176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_member_pointer {};  // expected-warning {{made available}}
46176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_nothrow_assignable {};  // expected-warning {{made available}}
47176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_nothrow_constructible {};  // expected-warning {{made available}}
48176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_nothrow_destructible {};  // expected-warning {{made available}}
49176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_object {};  // expected-warning {{made available}}
50176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_pointer {};  // expected-warning {{made available}}
51176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_polymorphic {};  // expected-warning {{made available}}
52176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_reference {};  // expected-warning {{made available}}
53176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_rvalue_expr {};  // expected-warning {{made available}}
54176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_rvalue_reference {};  // expected-warning {{made available}}
55176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_same {};  // expected-warning {{made available}}
56176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_scalar {};  // expected-warning {{made available}}
57176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_sealed {};  // expected-warning {{made available}}
58176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_signed {};  // expected-warning {{made available}}
59176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_standard_layout {};  // expected-warning {{made available}}
60176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_trivial {};  // expected-warning {{made available}}
61176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_trivially_assignable {};  // expected-warning {{made available}}
62176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_trivially_constructible {};  // expected-warning {{made available}}
63176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_trivially_copyable {};  // expected-warning {{made available}}
64176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_union {};  // expected-warning {{made available}}
65176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_unsigned {};  // expected-warning {{made available}}
66176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_void {};  // expected-warning {{made available}}
67176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct __is_volatile {};  // expected-warning {{made available}}
68176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines
69176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines
70176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines}
71