OLD | NEW |
| (Empty) |
1 // { dg-do compile } | |
2 | |
3 // 2007-02-04 Benjamin Kosnik <bkoz@redhat.com> | |
4 // | |
5 // Copyright (C) 2007, 2009 Free Software Foundation, Inc. | |
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 | |
10 // Free Software Foundation; either version 3, or (at your option) | |
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 | |
19 // along with this library; see the file COPYING3. If not see | |
20 // <http://www.gnu.org/licenses/>. | |
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 | |
OLD | NEW |