summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/cpp0x/variadic98.C
blob: 6af599fcaa0083a93f01da156033ca596dcc6d1c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
// PR c++/42358
// { dg-do assemble }
// { dg-options -std=c++0x }

typedef __PTRDIFF_TYPE__ ptrdiff_t;
typedef __SIZE_TYPE__ size_t;
namespace std __attribute__ ((__visibility__ ("default"))) {
    using ::size_t;
}
namespace std __attribute__ ((__visibility__ ("default"))) {
    struct __sfinae_types   {
	typedef char __one;
	typedef struct {
	} __two;
    };
    template<typename _Tp, _Tp __v>     struct integral_constant     {
	static const _Tp value = __v;
	typedef _Tp value_type;
	typedef integral_constant<_Tp, __v> type;
    };
    typedef integral_constant<bool, false> false_type;
    template<typename>     struct remove_cv;
    template<typename>     struct __is_void_helper     : public false_type {
    };
    template<typename _Tp>     struct is_void     : public integral_constant<bool, (__is_void_helper<typename           remove_cv<_Tp>::type>::value)>     {
    };
    template<typename>     struct is_array     : public false_type {
    };
    template<typename>     struct is_function     : public false_type {
    };
    template<typename, unsigned _Uint = 0>     struct extent     : public integral_constant<std::size_t, 0> {
    };
    template<typename _Tp>     struct remove_const     {
	typedef _Tp type;
    };
    template<typename _Tp>     struct remove_volatile     {
	typedef _Tp type;
    };
    template<typename _Tp>     struct remove_cv     {
	typedef typename       remove_const<typename remove_volatile<_Tp>::type>::type type;
    };
    template<typename>     struct is_lvalue_reference     : public false_type {
    };
    template<typename>     struct is_rvalue_reference     : public false_type {
    };
    template<typename _Tp>     struct is_reference     : public integral_constant<bool, (is_lvalue_reference<_Tp>::value           || is_rvalue_reference<_Tp>::value)>     {
    };
    template<typename _Tp>     struct remove_reference     {
	typedef _Tp type;
    };
    template<typename _Tp,     bool = !is_reference<_Tp>::value && !is_void<_Tp>::value>     struct __add_rvalue_reference_helper     {
	typedef _Tp type;
    };
    template<typename _Tp>     struct add_rvalue_reference     : public __add_rvalue_reference_helper<_Tp>     {
    };
    template<typename _Tp>     typename add_rvalue_reference<_Tp>::type declval();
    template<typename _From, typename _To,     bool = (is_void<_From>::value || is_void<_To>::value      || is_function<_To>::value || is_array<_To>::value)>     struct __is_convertible_helper     {
    };
    template<typename _From, typename _To>     struct __is_convertible_helper<_From, _To, false>     : public __sfinae_types     {
	static __one __test(_To);
	static __two __test(...);
	static const bool __value = sizeof(__test(declval<_From>())) == 1;
    };
    template<typename _From, typename _To>     struct is_convertible     : public integral_constant<bool,           __is_convertible_helper<_From, _To>::__value>     {
    };
    template<bool, typename _Tp = void>     struct enable_if     {
    };
    template<typename _Tp>     struct enable_if<true, _Tp>     {
	typedef _Tp type;
    };
    template<typename _Tp>     struct identity     {
	typedef _Tp type;
    };
    template<typename _Tp>     inline typename enable_if<!is_lvalue_reference<_Tp>::value, _Tp&&>::type     forward(typename std::identity<_Tp>::type& __t)     {
    }
    template<typename _Tp>     inline typename enable_if<is_lvalue_reference<_Tp>::value, _Tp>::type     forward(typename std::identity<_Tp>::type __t)     {
    }
    template<typename _Tp>     inline typename std::remove_reference<_Tp>::type&&     move(_Tp&& __t)     {
    }
    template<class _T1, class _T2>     struct pair     {
	typedef _T1 first_type;
	typedef _T2 second_type;
	_T1 first;
	_T2 second;
	template<class _U1, class = typename         std::enable_if<std::is_convertible<_U1, _T1>::value>::type>         pair(_U1&& __x, const _T2& __y)  : first(std::forward<_U1>(__x)),    second(__y) {
	}
	template<class _U2, class = typename         std::enable_if<std::is_convertible<_U2, _T2>::value>::type>         pair(const _T1& __x, _U2&& __y)  : first(__x),    second(std::forward<_U2>(__y)) {
	}
	template<class _U1, class _U2, class = typename         std::enable_if<std::is_convertible<_U1, _T1>::value          && std::is_convertible<_U2, _T2>::value>::type>         pair(_U1&& __x, _U2&& __y)  : first(std::forward<_U1>(__x)),    second(std::forward<_U2>(__y)) {
	}
	template<class _U1, class _U2>         pair(pair<_U1, _U2>&& __p)  : first(std::move(__p.first)),    second(std::move(__p.second)) {
	}
	template<class _U1, class _U2>         pair&         operator=(pair<_U1, _U2>&& __p)  {
	}
    };
    struct input_iterator_tag {
    };
    struct output_iterator_tag {
    };
    struct forward_iterator_tag : public input_iterator_tag {
    };
    struct bidirectional_iterator_tag : public forward_iterator_tag {
    };
    template<typename _Category, typename _Tp, typename _Distance = ptrdiff_t,            typename _Pointer = _Tp*, typename _Reference = _Tp&>     struct iterator     {
	typedef _Category iterator_category;
	typedef _Tp value_type;
	typedef _Distance difference_type;
	typedef _Pointer pointer;
	typedef _Reference reference;
    };
    template<typename _Iterator>     struct iterator_traits     {
	typedef typename _Iterator::iterator_category iterator_category;
	typedef typename _Iterator::value_type value_type;
	typedef typename _Iterator::difference_type difference_type;
	typedef typename _Iterator::pointer pointer;
	typedef typename _Iterator::reference reference;
    };
    template<typename _Iter>     inline typename iterator_traits<_Iter>::iterator_category     __iterator_category(const _Iter&)     {
    }
    template<typename _InputIterator>     inline typename iterator_traits<_InputIterator>::difference_type     __distance(_InputIterator __first, _InputIterator __last,                input_iterator_tag)     {
    }
    template<typename _InputIterator>     inline typename iterator_traits<_InputIterator>::difference_type     distance(_InputIterator __first, _InputIterator __last)     {
	return std::__distance(__first, __last,         std::__iterator_category(__first));
    }
    template<typename _Iterator>     class reverse_iterator     : public iterator<typename iterator_traits<_Iterator>::iterator_category,         typename iterator_traits<_Iterator>::value_type,         typename iterator_traits<_Iterator>::difference_type,         typename iterator_traits<_Iterator>::pointer,                       typename iterator_traits<_Iterator>::reference>     {
    };
    template<typename _Container>     class back_insert_iterator     : public iterator<output_iterator_tag, void, void, void, void>     {
    };
}
namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
    template<typename _Tp>     class new_allocator     {
    public:
	typedef size_t size_type;
	typedef ptrdiff_t difference_type;
	typedef _Tp* pointer;
	typedef const _Tp* const_pointer;
	typedef _Tp& reference;
	typedef const _Tp& const_reference;
	typedef _Tp value_type;
	new_allocator() throw() {
	}
	new_allocator(const new_allocator&) throw() {
	}
	template<typename _Tp1>         new_allocator(const new_allocator<_Tp1>&) throw() {
	}
	template<typename... _Args>         void         construct(pointer __p, _Args&&... __args)  {
	}
    };
}
namespace std __attribute__ ((__visibility__ ("default"))) {
    template<typename _Tp>     class allocator: public __gnu_cxx::new_allocator<_Tp>     {
    public:
	typedef size_t size_type;
	typedef ptrdiff_t difference_type;
	typedef _Tp* pointer;
	typedef const _Tp* const_pointer;
	typedef _Tp& reference;
	typedef const _Tp& const_reference;
	typedef _Tp value_type;
	template<typename _Tp1>         struct rebind         {
	    typedef allocator<_Tp1> other;
	};
	allocator() throw() {
	}
	template<typename _Tp1>         allocator(const allocator<_Tp1>&) throw() {
	}
    };
    extern template class allocator<char>;
    extern template class allocator<wchar_t>;
    template<typename _Arg, typename _Result>     struct unary_function     {
	typedef _Arg argument_type;
	typedef _Result result_type;
    };
    template<typename _Arg1, typename _Arg2, typename _Result>     struct binary_function     {
	typedef _Arg1 first_argument_type;
	typedef _Arg2 second_argument_type;
	typedef _Result result_type;
    };
    template<typename _Tp>     struct less : public binary_function<_Tp, _Tp, bool>     {
	bool       operator()(const _Tp& __x, const _Tp& __y) const       {
	}
    };
    template<typename _Pair>     struct _Select1st : public unary_function<_Pair,            typename _Pair::first_type>     {
	const typename _Pair::first_type&       operator()(const _Pair& __x) const       {
	}
    };
    struct _Rb_tree_node_base   {
	typedef _Rb_tree_node_base* _Base_ptr;
	typedef const _Rb_tree_node_base* _Const_Base_ptr;
    };
    template<typename _Val>     struct _Rb_tree_node : public _Rb_tree_node_base     {
	typedef _Rb_tree_node<_Val>* _Link_type;
	_Val _M_value_field;
	template<typename... _Args>         _Rb_tree_node(_Args&&... __args)  : _Rb_tree_node_base(),    _M_value_field(std::forward<_Args>(__args)...) {
	}
    };
    template<typename _Tp>     struct _Rb_tree_iterator     {
	typedef _Tp value_type;
	typedef _Tp& reference;
	typedef _Tp* pointer;
	typedef bidirectional_iterator_tag iterator_category;
	typedef ptrdiff_t difference_type;
	typedef _Rb_tree_iterator<_Tp> _Self;
	typedef _Rb_tree_node_base::_Base_ptr _Base_ptr;
	typedef _Rb_tree_node<_Tp>* _Link_type;
	_Base_ptr _M_node;
    };
    template<typename _Tp>     struct _Rb_tree_const_iterator     {
	typedef _Tp value_type;
	typedef const _Tp& reference;
	typedef const _Tp* pointer;
	typedef _Rb_tree_iterator<_Tp> iterator;
	typedef bidirectional_iterator_tag iterator_category;
	typedef ptrdiff_t difference_type;
	typedef _Rb_tree_const_iterator<_Tp> _Self;
	typedef _Rb_tree_node_base::_Const_Base_ptr _Base_ptr;
	typedef const _Rb_tree_node<_Tp>* _Link_type;
	explicit       _Rb_tree_const_iterator(_Link_type __x)       : _M_node(__x) {
	}
	_Rb_tree_const_iterator(const iterator& __it)       : _M_node(__it._M_node) {
	}
	_Base_ptr _M_node;
    };
    template<typename _Key, typename _Val, typename _KeyOfValue,            typename _Compare, typename _Alloc = allocator<_Val> >     class _Rb_tree     {
	typedef typename _Alloc::template rebind<_Rb_tree_node<_Val> >::other               _Node_allocator;
	typedef _Rb_tree_node_base* _Base_ptr;
	typedef const _Rb_tree_node_base* _Const_Base_ptr;
    public:
	typedef _Key key_type;
	typedef _Val value_type;
	typedef value_type* pointer;
	typedef const value_type* const_pointer;
	typedef value_type& reference;
	typedef const value_type& const_reference;
	typedef _Rb_tree_node<_Val>* _Link_type;
	typedef const _Rb_tree_node<_Val>* _Const_Link_type;
	typedef size_t size_type;
	typedef ptrdiff_t difference_type;
	typedef _Alloc allocator_type;
	_Node_allocator&       _M_get_Node_allocator()       {
	}
	_Link_type       _M_get_node()       {
	}
	template<typename... _Args>         _Link_type         _M_create_node(_Args&&... __args)  {
	    _Link_type __tmp = _M_get_node();
	    try      {
		_M_get_Node_allocator().construct(__tmp,           std::forward<_Args>(__args)...);
	    }
	    catch(...)      {
	    }
	}
	template<typename _Key_compare,         bool _Is_pod_comparator = __is_pod(_Key_compare)>         struct _Rb_tree_impl : public _Node_allocator         {
	    _Key_compare _M_key_compare;
	    _Rb_tree_node_base _M_header;
	    size_type _M_node_count;
	    _Rb_tree_impl(const _Key_compare& __comp, const _Node_allocator& __a)    : _Node_allocator(__a), _M_key_compare(__comp), _M_header(),      _M_node_count(0)    {
	    }
	    void    _M_initialize()    {
	    }
	};
	_Rb_tree_impl<_Compare> _M_impl;
	_Base_ptr&       _M_rightmost()       {
	}
	_Link_type       _M_begin()       {
	}
	_Link_type       _M_end()       {
	}
	_Const_Link_type       _M_end() const       {
	}
	static _Link_type       _S_right(_Base_ptr __x)       {
	}
	static const_reference       _S_value(_Const_Base_ptr __x)       {
	}
	static const _Key&       _S_key(_Const_Base_ptr __x)       {
	    return _KeyOfValue()(_S_value(__x));
	}
	typedef _Rb_tree_iterator<value_type> iterator;
	typedef _Rb_tree_const_iterator<value_type> const_iterator;
	typedef std::reverse_iterator<iterator> reverse_iterator;
	typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
	iterator       _M_insert_(_Const_Base_ptr __x, _Const_Base_ptr __y,    const value_type& __v);
	iterator       _M_insert_lower(_Base_ptr __x, _Base_ptr __y, const value_type& __v);
	iterator       _M_insert_equal_lower(const value_type& __x);
	iterator       _M_lower_bound(_Link_type __x, _Link_type __y,        const _Key& __k);
	iterator       _M_upper_bound(_Link_type __x, _Link_type __y,        const _Key& __k);
	_Rb_tree(const _Compare& __comp,         const allocator_type& __a = allocator_type())       : _M_impl(__comp, __a) {
	}
	iterator       end()       {
	}
	iterator       _M_insert_equal_(const_iterator __position, const value_type& __x);
	template<typename _InputIterator>         void         _M_insert_unique(_InputIterator __first, _InputIterator __last);
	template<typename _InputIterator>         void         _M_insert_equal(_InputIterator __first, _InputIterator __last);
	size_type       count(const key_type& __k) const;
	pair<iterator, iterator>       equal_range(const key_type& __k);
	pair<const_iterator, const_iterator>       equal_range(const key_type& __k) const;
    };
    template<typename _Key, typename _Val, typename _KeyOfValue,            typename _Compare, typename _Alloc>     typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator     _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::     _M_insert_(_Const_Base_ptr __x, _Const_Base_ptr __p, const _Val& __v)     {
	_Link_type __z = _M_create_node(__v);
    }
    template<typename _Key, typename _Val, typename _KeyOfValue,            typename _Compare, typename _Alloc>     typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator     _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::     _M_insert_lower(_Base_ptr __x, _Base_ptr __p, const _Val& __v)     {
	_Link_type __z = _M_create_node(__v);
    }
    template<typename _Key, typename _Val, typename _KeyOfValue,            typename _Compare, typename _Alloc>     typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator     _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::     _M_insert_equal_lower(const _Val& __v)     {
	_Link_type __x = _M_begin();
	_Link_type __y = _M_end();
	return _M_insert_lower(__x, __y, __v);
    }
    template<typename _Key, typename _Val, typename _KeyOfValue,            typename _Compare, typename _Alloc>     pair<typename _Rb_tree<_Key, _Val, _KeyOfValue,       _Compare, _Alloc>::iterator,   typename _Rb_tree<_Key, _Val, _KeyOfValue,       _Compare, _Alloc>::iterator>     _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::     equal_range(const _Key& __k)     {
	_Link_type __x = _M_begin();
	_Link_type __y = _M_end();
	while (__x != 0)  {
	    if (_M_impl._M_key_compare(_S_key(__x), __k))      __x = _S_right(__x);
	    else      {
		_Link_type __xu(__x), __yu(__y);
		return pair<iterator,             iterator>(_M_lower_bound(__x, __y, __k),         _M_upper_bound(__xu, __yu, __k));
	    }
	}
    }
    template<typename _Key, typename _Val, typename _KeyOfValue,            typename _Compare, typename _Alloc>     pair<typename _Rb_tree<_Key, _Val, _KeyOfValue,       _Compare, _Alloc>::const_iterator,   typename _Rb_tree<_Key, _Val, _KeyOfValue,       _Compare, _Alloc>::const_iterator>     _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::     equal_range(const _Key& __k) const     {
	_Const_Link_type __y = _M_end();
	return pair<const_iterator, const_iterator>(const_iterator(__y),         const_iterator(__y));
    }
    template<typename _Key, typename _Val, typename _KeyOfValue,            typename _Compare, typename _Alloc>     typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator     _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::     _M_insert_equal_(const_iterator __position, const _Val& __v)     {
	if (__position._M_node == _M_end())  {
	    if (__position._M_node == _M_rightmost())      return _M_insert_(0, _M_rightmost(), __v);
	    else      return _M_insert_equal_lower(__v);
	}
    }
    template<typename _Key, typename _Val, typename _KoV,            typename _Cmp, typename _Alloc>     template<class _II>       void       _Rb_tree<_Key, _Val, _KoV, _Cmp, _Alloc>::       _M_insert_equal(_II __first, _II __last)       {
	for (;
	     __first != __last;
	     ++__first)    _M_insert_equal_(end(), *__first);
    }
    template<typename _Key, typename _Val, typename _KeyOfValue,            typename _Compare, typename _Alloc>     typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::size_type     _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::     count(const _Key& __k) const     {
	pair<const_iterator, const_iterator> __p = equal_range(__k);
	const size_type __n = std::distance(__p.first, __p.second);
    }
    template<class _E>     class initializer_list     {
    public:
	typedef _E value_type;
	typedef const _E& reference;
	typedef const _E& const_reference;
	typedef size_t size_type;
	typedef const _E* iterator;
	typedef const _E* const_iterator;
	iterator _M_array;
	size_type _M_len;
	initializer_list(const_iterator __a, size_type __l)       : _M_array(__a), _M_len(__l) {
	}
	const_iterator       begin() const {
	}
	const_iterator       end() const {
	}
    };
    template <typename _Key, typename _Tp,      typename _Compare = std::less<_Key>,      typename _Alloc = std::allocator<std::pair<const _Key, _Tp> > >     class multimap     {
	typedef _Key key_type;
	typedef _Tp mapped_type;
	typedef std::pair<const _Key, _Tp> value_type;
	typedef _Compare key_compare;
	typedef _Alloc allocator_type;
	typedef typename _Alloc::value_type _Alloc_value_type;
	typedef typename _Alloc::template rebind<value_type>::other         _Pair_alloc_type;
	typedef _Rb_tree<key_type, value_type, _Select1st<value_type>,          key_compare, _Pair_alloc_type> _Rep_type;
	_Rep_type _M_t;
    public:
	typedef typename _Pair_alloc_type::pointer pointer;
	typedef typename _Pair_alloc_type::const_pointer const_pointer;
	typedef typename _Pair_alloc_type::reference reference;
	typedef typename _Pair_alloc_type::const_reference const_reference;
	typedef typename _Rep_type::iterator iterator;
	typedef typename _Rep_type::const_iterator const_iterator;
	typedef typename _Rep_type::size_type size_type;
	typedef typename _Rep_type::difference_type difference_type;
	typedef typename _Rep_type::reverse_iterator reverse_iterator;
	typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator;
	multimap(initializer_list<value_type> __l,         const _Compare& __comp = _Compare(),         const allocator_type& __a = allocator_type())       : _M_t(__comp, __a)       {
	    _M_t._M_insert_equal(__l.begin(), __l.end());
	}
	template<typename _InputIterator>         multimap(_InputIterator __first, _InputIterator __last)  : _M_t()         {
	}
	template<typename _InputIterator>         multimap(_InputIterator __first, _InputIterator __last,    const _Compare& __comp,    const allocator_type& __a = allocator_type())         : _M_t(__comp, __a)         {
	}
	template<typename _InputIterator>         void         insert(_InputIterator __first, _InputIterator __last)         {
	}
	size_type       count(const key_type& __x) const       {
	    return _M_t.count(__x);
	}
	std::pair<iterator, iterator>       equal_range(const key_type& __x)       {
	    return _M_t.equal_range(__x);
	}
	template<typename _K1, typename _T1, typename _C1, typename _A1>         friend bool         operator==(const multimap<_K1, _T1, _C1, _A1>&,      const multimap<_K1, _T1, _C1, _A1>&);
	template<typename _K1, typename _T1, typename _C1, typename _A1>         friend bool         operator<(const multimap<_K1, _T1, _C1, _A1>&,     const multimap<_K1, _T1, _C1, _A1>&);
    };
}
extern "C" {
    extern void __assert_fail (__const char *__assertion, __const char *__file,       unsigned int __line, __const char *__function)      throw () __attribute__ ((__noreturn__));
}
using namespace std;
int test01() {
    typedef multimap<int,double> Container;
    typedef Container::iterator iterator;
    typedef pair<iterator,iterator> itpair;
    Container m({
		{
		1, 1.0 }
		}
	       );
    itpair ip = m.equal_range(1);
    ((distance(ip.first, ip.second) == 3) ? static_cast<void> (0) : __assert_fail ("distance(ip.first, ip.second) == 3", "/home/richard/src/trunk/libstdc++-v3/testsuite/23_containers/multimap/init-list.cc", 36, __PRETTY_FUNCTION__));
    ((m.count(7) == 2) ? static_cast<void> (0) : __assert_fail ("m.count(7) == 2", "/home/richard/src/trunk/libstdc++-v3/testsuite/23_containers/multimap/init-list.cc", 54, __PRETTY_FUNCTION__));
}