]>
Commit | Line | Data |
---|---|---|
a024740d BK |
1 | // { dg-do compile } |
2 | ||
3 | // 2007-02-04 Benjamin Kosnik <bkoz@redhat.com> | |
4 | // | |
83ffe9cd | 5 | // Copyright (C) 2007-2023 Free Software Foundation, Inc. |
a024740d BK |
6 | // |
7 | // This file is part of the GNU ISO C++ Library. This library is free | |
8 | // software; you can redistribute it and/or modify it under the | |
9 | // terms of the GNU General Public License as published by the | |
748086b7 | 10 | // Free Software Foundation; either version 3, or (at your option) |
a024740d BK |
11 | // any later version. |
12 | // | |
13 | // This library is distributed in the hope that it will be useful, | |
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
16 | // GNU General Public License for more details. | |
17 | // | |
18 | // You should have received a copy of the GNU General Public License | |
748086b7 JJ |
19 | // along with this library; see the file COPYING3. If not see |
20 | // <http://www.gnu.org/licenses/>. | |
a024740d BK |
21 | |
22 | #include <tr1/type_traits> | |
23 | ||
24 | namespace std { | |
25 | namespace tr1 { | |
26 | ||
27 | // [4.3] helper class: | |
28 | template <class T, T v> struct integral_constant; | |
29 | typedef integral_constant<bool, true> true_type; | |
30 | typedef integral_constant<bool, false> false_type; | |
31 | ||
32 | // [4.5.1] primary type categories: | |
33 | template <class T> struct is_void; | |
34 | template <class T> struct is_integral; | |
35 | template <class T> struct is_floating_point; | |
36 | template <class T> struct is_array; | |
37 | template <class T> struct is_pointer; | |
38 | template <class T> struct is_reference; | |
39 | template <class T> struct is_member_object_pointer; | |
40 | template <class T> struct is_member_function_pointer; | |
41 | template <class T> struct is_enum; | |
42 | template <class T> struct is_union; | |
43 | template <class T> struct is_class; | |
44 | template <class T> struct is_function; | |
45 | ||
46 | // [4.5.2] composite type categories: | |
47 | template <class T> struct is_arithmetic; | |
48 | template <class T> struct is_fundamental; | |
49 | template <class T> struct is_object; | |
50 | template <class T> struct is_scalar; | |
51 | template <class T> struct is_compound; | |
52 | template <class T> struct is_member_pointer; | |
53 | ||
54 | // [4.5.3] type properties: | |
55 | template <class T> struct is_const; | |
56 | template <class T> struct is_volatile; | |
57 | template <class T> struct is_pod; | |
58 | template <class T> struct is_empty; | |
59 | template <class T> struct is_polymorphic; | |
60 | template <class T> struct is_abstract; | |
61 | template <class T> struct has_trivial_constructor; | |
62 | template <class T> struct has_trivial_copy; | |
63 | template <class T> struct has_trivial_assign; | |
64 | template <class T> struct has_trivial_destructor; | |
65 | template <class T> struct has_nothrow_constructor; | |
66 | template <class T> struct has_nothrow_copy; | |
67 | template <class T> struct has_nothrow_assign; | |
68 | template <class T> struct has_virtual_destructor; | |
69 | template <class T> struct is_signed; | |
70 | template <class T> struct is_unsigned; | |
71 | template <class T> struct alignment_of; | |
72 | template <class T> struct rank; | |
73 | template <class T, unsigned I> struct extent; | |
74 | ||
75 | // [4.6] type relations: | |
76 | template <class T, class U> struct is_same; | |
77 | template <class Base, class Derived> struct is_base_of; | |
78 | template <class From, class To> struct is_convertible; | |
79 | ||
80 | // [4.7.1] const-volatile modifications: | |
81 | template <class T> struct remove_const; | |
82 | template <class T> struct remove_volatile; | |
83 | template <class T> struct remove_cv; | |
84 | template <class T> struct add_const; | |
85 | template <class T> struct add_volatile; | |
86 | template <class T> struct add_cv; | |
87 | ||
88 | // [4.7.2] reference modifications: | |
89 | template <class T> struct remove_reference; | |
90 | template <class T> struct add_reference; | |
91 | ||
92 | // [4.7.3] array modifications: | |
93 | template <class T> struct remove_extent; | |
94 | template <class T> struct remove_all_extents; | |
95 | ||
96 | // [4.7.4] pointer modifications: | |
97 | template <class T> struct remove_pointer; | |
98 | template <class T> struct add_pointer; | |
99 | ||
100 | // [4.8] other transformations: | |
101 | template <std::size_t Len, std::size_t Align> struct aligned_storage; | |
102 | } // namespace tr1 | |
103 | } // namespace std |