]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/testsuite/tr1/4_metaprogramming/headers/type_traits/synopsis.cc
Update copyright years.
[thirdparty/gcc.git] / libstdc++-v3 / testsuite / tr1 / 4_metaprogramming / headers / type_traits / synopsis.cc
CommitLineData
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
24namespace std {
25namespace 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