1 // { dg-options "-std=c++11 -fcompare-debug" }
3 typedef long unsigned size_t;
6 template < typename _Tp, _Tp __v > struct integral_constant
8 static const _Tp value = __v;
10 typedef integral_constant < bool, false > false_type;
11 template < typename > struct remove_cv;
12 template < typename > struct __is_void_helper:false_type
21 is_void:integral_constant
22 < bool, (__is_void_helper < typename remove_cv < _Tp >::type >::value) >
25 template < typename > struct is_function:false_type
28 template < typename _Tp > struct remove_const
32 template < typename _Tp > struct remove_volatile
36 template < typename _Tp > struct remove_cv
40 remove_const < typename remove_volatile < _Tp >::type >::type type;
42 template < typename > struct is_lvalue_reference:false_type
45 template < typename _Tp, bool = is_void < _Tp >::value > struct __add_rvalue_reference_helper
52 _Tp > struct add_rvalue_reference:__add_rvalue_reference_helper < _Tp >
56 < typename _Tp > typename add_rvalue_reference < _Tp >::type declval ();
61 _To, bool = (is_function < _To >::value) > struct __is_convertible_helper;
65 _From, typename _To > struct __is_convertible_helper <_From, _To, false >
67 static const bool __value = sizeof ((declval < _From > ()));
77 is_convertible:integral_constant
78 < bool, __is_convertible_helper < _From, _To >::__value >
81 template < bool, typename _Tp = void >struct enable_if
85 template < typename _Tp > struct identity
98 < _Tp >::value, _Tp >::type forward (typename identity < _Tp >::type)
103 template < class _T1, class > struct pair
106 template < class _U1, class = typename enable_if < is_convertible < _U1, _T1 >::value >::type > pair (_U1 __x):
108 (forward < _U1 > (__x))
116 template < typename > class new_allocator
123 template < typename _Tp > class allocator:__gnu_cxx::new_allocator < _Tp >
126 template < typename > struct rebind
128 typedef allocator other;
131 template < typename, typename > struct unary_function;
132 template < typename, typename, typename > struct binary_function
135 template < typename _Tp > struct less:binary_function < _Tp, _Tp, bool >
142 > struct _Select1st:unary_function < _Pair, typename _Pair::first_type >
145 template < typename > struct _Rb_tree_node;
152 typename _Compare, typename _Alloc = allocator < _Val > >class _Rb_tree
157 rebind < _Rb_tree_node < _Val > >::other _Node_allocator;
159 typedef _Alloc allocator_type;
160 template < typename _Key_compare > struct _Rb_tree_impl
162 _Rb_tree_impl (_Key_compare, _Node_allocator);
164 _Rb_tree_impl < _Compare > _M_impl;
165 _Rb_tree (_Compare __comp, allocator_type __a):
166 _M_impl (__comp, __a)
170 template < class _E > class initializer_list
172 typedef size_t size_type;
173 typedef _E *iterator;
188 _Key >, typename _Alloc = allocator < pair < _Key, _Tp > > >class multimap
190 typedef _Key key_type;
191 typedef pair < _Key, _Tp > value_type;
192 typedef _Compare key_compare;
193 typedef _Alloc allocator_type;
198 value_type, _Select1st < value_type >, key_compare > _Rep_type;
201 multimap (initializer_list < value_type >, _Compare __comp = _Compare (), allocator_type __a = allocator_type ()):
213 typedef multimap < int, double >Container;