annotate gcc/testsuite/g++.dg/cpp0x/pr57101.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
111
kono
parents:
diff changeset
1 // { dg-do compile { target c++11 } }
kono
parents:
diff changeset
2 // { dg-options "-fcompare-debug" }
kono
parents:
diff changeset
3
kono
parents:
diff changeset
4 typedef __SIZE_TYPE__ size_t;
kono
parents:
diff changeset
5 namespace
kono
parents:
diff changeset
6 {
kono
parents:
diff changeset
7 template < typename _Tp, _Tp __v > struct integral_constant
kono
parents:
diff changeset
8 {
kono
parents:
diff changeset
9 static const _Tp value = __v;
kono
parents:
diff changeset
10 };
kono
parents:
diff changeset
11 typedef integral_constant < bool, false > false_type;
kono
parents:
diff changeset
12 template < typename > struct remove_cv;
kono
parents:
diff changeset
13 template < typename > struct __is_void_helper:false_type
kono
parents:
diff changeset
14 {
kono
parents:
diff changeset
15 };
kono
parents:
diff changeset
16 template
kono
parents:
diff changeset
17 <
kono
parents:
diff changeset
18 typename
kono
parents:
diff changeset
19 _Tp
kono
parents:
diff changeset
20 >
kono
parents:
diff changeset
21 struct
kono
parents:
diff changeset
22 is_void:integral_constant
kono
parents:
diff changeset
23 < bool, (__is_void_helper < typename remove_cv < _Tp >::type >::value) >
kono
parents:
diff changeset
24 {
kono
parents:
diff changeset
25 };
kono
parents:
diff changeset
26 template < typename > struct is_function:false_type
kono
parents:
diff changeset
27 {
kono
parents:
diff changeset
28 };
kono
parents:
diff changeset
29 template < typename _Tp > struct remove_const
kono
parents:
diff changeset
30 {
kono
parents:
diff changeset
31 typedef _Tp type;
kono
parents:
diff changeset
32 };
kono
parents:
diff changeset
33 template < typename _Tp > struct remove_volatile
kono
parents:
diff changeset
34 {
kono
parents:
diff changeset
35 typedef _Tp type;
kono
parents:
diff changeset
36 };
kono
parents:
diff changeset
37 template < typename _Tp > struct remove_cv
kono
parents:
diff changeset
38 {
kono
parents:
diff changeset
39 typedef
kono
parents:
diff changeset
40 typename
kono
parents:
diff changeset
41 remove_const < typename remove_volatile < _Tp >::type >::type type;
kono
parents:
diff changeset
42 };
kono
parents:
diff changeset
43 template < typename > struct is_lvalue_reference:false_type
kono
parents:
diff changeset
44 {
kono
parents:
diff changeset
45 };
kono
parents:
diff changeset
46 template < typename _Tp, bool = is_void < _Tp >::value > struct __add_rvalue_reference_helper
kono
parents:
diff changeset
47 {
kono
parents:
diff changeset
48 typedef _Tp type;
kono
parents:
diff changeset
49 };
kono
parents:
diff changeset
50 template
kono
parents:
diff changeset
51 <
kono
parents:
diff changeset
52 typename
kono
parents:
diff changeset
53 _Tp > struct add_rvalue_reference:__add_rvalue_reference_helper < _Tp >
kono
parents:
diff changeset
54 {
kono
parents:
diff changeset
55 };
kono
parents:
diff changeset
56 template
kono
parents:
diff changeset
57 < typename _Tp > typename add_rvalue_reference < _Tp >::type declval ();
kono
parents:
diff changeset
58 template
kono
parents:
diff changeset
59 <
kono
parents:
diff changeset
60 typename,
kono
parents:
diff changeset
61 typename
kono
parents:
diff changeset
62 _To, bool = (is_function < _To >::value) > struct __is_convertible_helper;
kono
parents:
diff changeset
63 template
kono
parents:
diff changeset
64 <
kono
parents:
diff changeset
65 typename
kono
parents:
diff changeset
66 _From, typename _To > struct __is_convertible_helper <_From, _To, false >
kono
parents:
diff changeset
67 {
kono
parents:
diff changeset
68 static const bool __value = sizeof ((declval < _From > ()));
kono
parents:
diff changeset
69 };
kono
parents:
diff changeset
70 template
kono
parents:
diff changeset
71 <
kono
parents:
diff changeset
72 typename
kono
parents:
diff changeset
73 _From,
kono
parents:
diff changeset
74 typename
kono
parents:
diff changeset
75 _To
kono
parents:
diff changeset
76 >
kono
parents:
diff changeset
77 struct
kono
parents:
diff changeset
78 is_convertible:integral_constant
kono
parents:
diff changeset
79 < bool, __is_convertible_helper < _From, _To >::__value >
kono
parents:
diff changeset
80 {
kono
parents:
diff changeset
81 };
kono
parents:
diff changeset
82 template < bool, typename _Tp = void >struct enable_if
kono
parents:
diff changeset
83 {
kono
parents:
diff changeset
84 typedef _Tp type;
kono
parents:
diff changeset
85 };
kono
parents:
diff changeset
86 template < typename _Tp > struct identity
kono
parents:
diff changeset
87 {
kono
parents:
diff changeset
88 typedef _Tp type;
kono
parents:
diff changeset
89 };
kono
parents:
diff changeset
90 template
kono
parents:
diff changeset
91 <
kono
parents:
diff changeset
92 typename
kono
parents:
diff changeset
93 _Tp
kono
parents:
diff changeset
94 >
kono
parents:
diff changeset
95 typename
kono
parents:
diff changeset
96 enable_if
kono
parents:
diff changeset
97 <
kono
parents:
diff changeset
98 is_lvalue_reference
kono
parents:
diff changeset
99 < _Tp >::value, _Tp >::type forward (typename identity < _Tp >::type)
kono
parents:
diff changeset
100 {
kono
parents:
diff changeset
101 return 0;
kono
parents:
diff changeset
102
kono
parents:
diff changeset
103 }
kono
parents:
diff changeset
104 template < class _T1, class > struct pair
kono
parents:
diff changeset
105 {
kono
parents:
diff changeset
106 _T1 first;
kono
parents:
diff changeset
107 template < class _U1, class = typename enable_if < is_convertible < _U1, _T1 >::value >::type > pair (_U1 __x):
kono
parents:
diff changeset
108 first
kono
parents:
diff changeset
109 (forward < _U1 > (__x))
kono
parents:
diff changeset
110 {
kono
parents:
diff changeset
111 }
kono
parents:
diff changeset
112 };
kono
parents:
diff changeset
113 }
kono
parents:
diff changeset
114
kono
parents:
diff changeset
115 namespace __gnu_cxx
kono
parents:
diff changeset
116 {
kono
parents:
diff changeset
117 template < typename > class new_allocator
kono
parents:
diff changeset
118 {
kono
parents:
diff changeset
119 };
kono
parents:
diff changeset
120 }
kono
parents:
diff changeset
121
kono
parents:
diff changeset
122 namespace std
kono
parents:
diff changeset
123 {
kono
parents:
diff changeset
124 template < typename _Tp > class allocator:__gnu_cxx::new_allocator < _Tp >
kono
parents:
diff changeset
125 {
kono
parents:
diff changeset
126 public:
kono
parents:
diff changeset
127 template < typename > struct rebind
kono
parents:
diff changeset
128 {
kono
parents:
diff changeset
129 typedef allocator other;
kono
parents:
diff changeset
130 };
kono
parents:
diff changeset
131 };
kono
parents:
diff changeset
132 template < typename, typename > struct unary_function;
kono
parents:
diff changeset
133 template < typename, typename, typename > struct binary_function
kono
parents:
diff changeset
134 {
kono
parents:
diff changeset
135 };
kono
parents:
diff changeset
136 template < typename _Tp > struct less:binary_function < _Tp, _Tp, bool >
kono
parents:
diff changeset
137 {
kono
parents:
diff changeset
138 };
kono
parents:
diff changeset
139 template
kono
parents:
diff changeset
140 <
kono
parents:
diff changeset
141 typename
kono
parents:
diff changeset
142 _Pair
kono
parents:
diff changeset
143 > struct _Select1st:unary_function < _Pair, typename _Pair::first_type >
kono
parents:
diff changeset
144 {
kono
parents:
diff changeset
145 };
kono
parents:
diff changeset
146 template < typename > struct _Rb_tree_node;
kono
parents:
diff changeset
147 template
kono
parents:
diff changeset
148 <
kono
parents:
diff changeset
149 typename,
kono
parents:
diff changeset
150 typename
kono
parents:
diff changeset
151 _Val,
kono
parents:
diff changeset
152 typename,
kono
parents:
diff changeset
153 typename _Compare, typename _Alloc = allocator < _Val > >class _Rb_tree
kono
parents:
diff changeset
154 {
kono
parents:
diff changeset
155 typedef
kono
parents:
diff changeset
156 typename
kono
parents:
diff changeset
157 _Alloc::template
kono
parents:
diff changeset
158 rebind < _Rb_tree_node < _Val > >::other _Node_allocator;
kono
parents:
diff changeset
159 public:
kono
parents:
diff changeset
160 typedef _Alloc allocator_type;
kono
parents:
diff changeset
161 template < typename _Key_compare > struct _Rb_tree_impl
kono
parents:
diff changeset
162 {
kono
parents:
diff changeset
163 _Rb_tree_impl (_Key_compare, _Node_allocator); // { dg-warning "used but never defined" }
kono
parents:
diff changeset
164 };
kono
parents:
diff changeset
165 _Rb_tree_impl < _Compare > _M_impl;
kono
parents:
diff changeset
166 _Rb_tree (_Compare __comp, allocator_type __a):
kono
parents:
diff changeset
167 _M_impl (__comp, __a)
kono
parents:
diff changeset
168 {
kono
parents:
diff changeset
169 }
kono
parents:
diff changeset
170 };
kono
parents:
diff changeset
171 template < class _E > class initializer_list
kono
parents:
diff changeset
172 {
kono
parents:
diff changeset
173 typedef size_t size_type;
kono
parents:
diff changeset
174 typedef _E *iterator;
kono
parents:
diff changeset
175 iterator _M_array;
kono
parents:
diff changeset
176 size_type _M_len;
kono
parents:
diff changeset
177 };
kono
parents:
diff changeset
178 template
kono
parents:
diff changeset
179 <
kono
parents:
diff changeset
180 typename
kono
parents:
diff changeset
181 _Key,
kono
parents:
diff changeset
182 typename
kono
parents:
diff changeset
183 _Tp,
kono
parents:
diff changeset
184 typename
kono
parents:
diff changeset
185 _Compare
kono
parents:
diff changeset
186 =
kono
parents:
diff changeset
187 less
kono
parents:
diff changeset
188 <
kono
parents:
diff changeset
189 _Key >, typename _Alloc = allocator < pair < _Key, _Tp > > >class multimap
kono
parents:
diff changeset
190 {
kono
parents:
diff changeset
191 typedef _Key key_type;
kono
parents:
diff changeset
192 typedef pair < _Key, _Tp > value_type;
kono
parents:
diff changeset
193 typedef _Compare key_compare;
kono
parents:
diff changeset
194 typedef _Alloc allocator_type;
kono
parents:
diff changeset
195 typedef
kono
parents:
diff changeset
196 _Rb_tree
kono
parents:
diff changeset
197 <
kono
parents:
diff changeset
198 key_type,
kono
parents:
diff changeset
199 value_type, _Select1st < value_type >, key_compare > _Rep_type;
kono
parents:
diff changeset
200 _Rep_type _M_t;
kono
parents:
diff changeset
201 public:
kono
parents:
diff changeset
202 multimap (initializer_list < value_type >, _Compare __comp = _Compare (), allocator_type __a = allocator_type ()):
kono
parents:
diff changeset
203 _M_t
kono
parents:
diff changeset
204 (__comp, __a)
kono
parents:
diff changeset
205 {
kono
parents:
diff changeset
206 }
kono
parents:
diff changeset
207 };
kono
parents:
diff changeset
208 }
kono
parents:
diff changeset
209
kono
parents:
diff changeset
210 using namespace std;
kono
parents:
diff changeset
211 void
kono
parents:
diff changeset
212 test01 ()
kono
parents:
diff changeset
213 {
kono
parents:
diff changeset
214 typedef multimap < int, double >Container;
kono
parents:
diff changeset
215 Container (
kono
parents:
diff changeset
216 {
kono
parents:
diff changeset
217 {
kono
parents:
diff changeset
218 1}
kono
parents:
diff changeset
219 }
kono
parents:
diff changeset
220 );
kono
parents:
diff changeset
221 }