2 // { dg-options "-std=c++11" }
6 template <class, class>
10 struct input_iterator_tag
13 struct forward_iterator_tag : public input_iterator_tag
16 template <typename, typename _Tp, typename = _Tp>
23 template <typename _Tp>
27 typedef _Tp value_type;
28 template <typename _Tp1>
31 typedef new_allocator <_Tp1> other;
37 template <typename _Tp>
38 struct allocator : public __gnu_cxx::new_allocator <_Tp>
45 void rtl_string_release (rtl_String *) throw ();
46 void rtl_string_newFromStr (rtl_String * *, const char *) throw ();
50 template <typename, typename, typename> struct binary_function;
51 template <typename _Tp>
52 struct equal_to : public binary_function <_Tp, _Tp, bool>
61 OString (const char *value)
63 rtl_string_newFromStr (&pData, value);
67 rtl_string_release (pData);
74 template <class> struct hash;
77 template <class T, class = boost::hash <T>, class = std::equal_to <T>, class = std::allocator <T>>class unordered_set;
79 using boost::unordered::unordered_set;
85 template <class, class F>
92 template <class, class> struct pointer_to_other;
93 template <class T, class U>
94 struct pointer_to_other <T *, U>
102 template <typename T, T> struct integral_constant
107 typedef char (&type)[9];
109 struct choice8:choice9
112 struct choice7:choice8
115 struct choice6:choice7
118 struct choice5:choice6
121 struct choice4:choice5
124 struct choice3:choice4
127 struct choice2:choice3
130 struct choice1:choice2
134 template <typename Alloc, typename T>
137 typedef typename Alloc::template rebind <T>::other type;
139 template <typename, typename T2>
143 template <typename Tp, typename Default>
144 struct default_type_pointer
146 template <typename X>
147 static boost::unordered::detail::sfinae <typename X::pointer, choice1> test (choice1);
150 typedef Default pointer;
152 enum { value = (1 == sizeof (test <Tp> (choose ()))) };
153 typedef typename boost::detail::if_true <value>::template then <Tp, DefaultWrap>::type::pointer type;
155 template <typename Tp, typename Default>
156 struct default_type_const_pointer
159 static choice2::type test (choice2);
163 enum { value = (1 == sizeof (test <Tp> (choose ()))) };
164 typedef typename boost::detail::if_true <value>::template then <Tp, DefaultWrap> type;
166 struct default_type_propagate_on_container_swap
172 template <typename Alloc>
173 struct allocator_traits
175 typedef typename Alloc::value_type value_type;
176 typedef typename default_type_pointer <Alloc, value_type *>::type pointer;
177 template <typename T>
178 struct pointer_to_other : boost::pointer_to_other <pointer, T>
181 typedef typename default_type_const_pointer <Alloc, typename pointer_to_other <value_type>::type>::type const_pointer;
189 template <typename> struct table;
190 template <typename NodeAlloc>
191 struct node_constructor
193 void construct_value ()
203 template <typename A, typename Bucket, typename Node>
207 typedef Bucket bucket;
208 typedef typename boost::unordered::detail::rebind_wrap <A, node>::type node_allocator;
209 typedef typename boost::unordered::detail::rebind_wrap <A, bucket>::type bucket_allocator;
210 typedef boost::unordered::detail::allocator_traits <node_allocator> node_allocator_traits;
211 typedef boost::unordered::detail::allocator_traits <bucket_allocator> bucket_allocator_traits;
212 typedef typename node_allocator_traits::pointer node_pointer;
213 typedef typename node_allocator_traits::const_pointer const_node_pointer;
214 typedef typename bucket_allocator_traits::pointer bucket_pointer;
215 typedef boost::unordered::detail::node_constructor <node_allocator> node_constructor;
216 bucket_pointer buckets_;
218 template <typename Types>
219 buckets (boost::unordered::detail::table <Types>, boost::unordered::detail::move_tag) : buckets_ (), size_ ()
230 template <class Category, class T, class, class, class>
231 struct iterator_base:std::iterator <Category, T>
235 template <class Category, class T, class Distance, class Pointer = T, class Reference = T>
236 struct iterator:boost::detail::iterator_base <Category, T, Distance, Pointer, Reference>
241 namespace iterator_detail
243 template <typename, typename NodePointer, typename Value> struct c_iterator:public boost::iterator <std::forward_iterator_tag, Value, int>
245 friend bool operator== (c_iterator, c_iterator)
252 template <typename ValueType>
255 typedef ValueType value_type;
260 template <typename Types>
261 struct table:boost::unordered::detail::buckets <typename Types::allocator, typename Types::bucket, typename Types::key_equal>
263 typedef typename Types::value_type value_type;
264 typedef boost::unordered::detail::buckets <typename Types::allocator, typename Types::bucket, typename Types::node> buckets;
265 typedef typename buckets::node_pointer node_pointer;
266 typedef typename buckets::const_node_pointer const_node_pointer;
267 typedef boost::unordered::iterator_detail::c_iterator <const_node_pointer, node_pointer, value_type> c_iterator;
272 template <typename> struct table_impl;
273 template <typename T>
274 struct ptr_node : boost::unordered::detail::value_base <T>, boost::unordered::detail::ptr_bucket
276 boost::unordered::detail::ptr_bucket bucket_base;
278 ptr_node () : bucket_base (), hash_ ()
282 template <typename A, typename T, typename, typename> struct pick_node2
285 template <typename A, typename T> struct pick_node2 <A, T, boost::unordered::detail::ptr_node <T> *, boost::unordered::detail::ptr_bucket *>
287 typedef boost::unordered::detail::ptr_node <T> node;
288 typedef boost::unordered::detail::ptr_bucket bucket;
290 template <typename A, typename T> struct pick_node
292 typedef boost::unordered::detail::allocator_traits <typename boost::unordered::detail::rebind_wrap <A, boost::unordered::detail::ptr_node <T>>::type> tentative_node_traits;
293 typedef boost::unordered::detail::allocator_traits <typename boost::unordered::detail::rebind_wrap <A, boost::unordered::detail::ptr_bucket>::type> tentative_bucket_traits;
294 typedef pick_node2 <A, T, typename tentative_node_traits::pointer, typename tentative_bucket_traits::pointer> pick;
295 typedef typename pick::node node;
296 typedef typename pick::bucket bucket;
298 template <typename A, typename T, typename H, typename P>
301 typedef boost::unordered::detail::set <A, T, H, P> types;
302 typedef T value_type;
304 typedef typename boost::unordered::detail::rebind_wrap <A, value_type>::type allocator;
305 typedef boost::unordered::detail::pick_node <allocator, value_type> pick;
306 typedef typename pick::node node;
307 typedef typename pick::bucket bucket;
308 typedef boost::unordered::detail::table_impl <types> table;
310 template <typename Types>
311 struct table_impl : boost::unordered::detail::table <Types>
313 typedef boost::unordered::detail::table <Types> table;
314 typedef typename table::node_constructor node_constructor;
315 table_impl () : table ()
318 template <class InputIt>
319 void insert_range_impl2 (node_constructor, InputIt)
324 template <class T, class H, class P, class A>
328 typedef T value_type;
329 typedef boost::unordered::detail::set <A, T, H, P> types;
330 typedef typename types::table table;
331 typedef typename table::c_iterator const_iterator;
332 typedef typename table::c_iterator iterator;
341 std::pair <iterator, bool> insert (value_type)
344 unsigned erase (const key_type &);
345 const_iterator find (const key_type);
347 template <class T, class H, class P, class A>
348 unsigned unordered_set <T, H, P, A>::erase (const key_type &)
353 using namespace::rtl;
354 namespace skeletonmaker
357 checkDefaultInterfaces (boost::unordered_set <OString, OStringHash> interfaces,
358 boost::unordered_set <OStringHash> services, OString)
360 if (services.empty ())
361 interfaces.erase ("com.sun.star.lang.XServiceInfo");
362 else if (interfaces.find ("com.sun.star.lang.XServiceInfo") == interfaces.end ())
363 interfaces.insert ("com.sun.star.lang.XServiceInfo");