+2006-12-11 Richard Guenther <rguenther@suse.de>
+ Paolo Carlini <pcarlini@suse.de>
+
+ * include/ext/pb_ds/detail/pat_trie_/traits.hpp: Qualify types.
+ * include/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp: Likewise.
+ * include/ext/rope: Likewise.
+ * include/bits/stl_tree.h (struct _Rb_tree): Change the _Link_type
+ typedefs to use _Rb_tree_node<_Val> directly.
+ (_M_get_node, _M_put_node): Use _Link_type.
+
2006-12-10 Paolo Carlini <pcarlini@suse.de>
* src/valarray-inst.cc (__gslice_to_index): Optimize performance.
protected:
typedef _Rb_tree_node_base* _Base_ptr;
typedef const _Rb_tree_node_base* _Const_Base_ptr;
- typedef _Rb_tree_node<_Val> _Rb_tree_node;
public:
typedef _Key key_type;
typedef const value_type* const_pointer;
typedef value_type& reference;
typedef const value_type& const_reference;
- typedef _Rb_tree_node* _Link_type;
- typedef const _Rb_tree_node* _Const_Link_type;
+ 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;
{ return allocator_type(_M_get_Node_allocator()); }
protected:
- _Rb_tree_node*
+ _Link_type
_M_get_node()
{ return _M_impl._Node_allocator::allocate(1); }
void
- _M_put_node(_Rb_tree_node* __p)
+ _M_put_node(_Link_type __p)
{ _M_impl._Node_allocator::deallocate(__p, 1); }
_Link_type
entry_cmp<Value_Type, Cmp_Fn, is_simple<Value_Type>::value, Allocator>::type
#define PB_DS_RESIZE_POLICY_DEC \
- resize_policy<typename Allocator::size_type>
+ pb_ds::detail::resize_policy<typename Allocator::size_type>
/**
* class description = "Base class for some types of h3ap$">
typedef E_Access_Traits e_access_traits;
typedef
- synth_e_access_traits<
+ pb_ds::detail::synth_e_access_traits<
type_traits,
false,
e_access_traits>
typedef E_Access_Traits e_access_traits;
typedef
- synth_e_access_traits<
+ pb_ds::detail::synth_e_access_traits<
type_traits,
true,
e_access_traits>
using std::size_t;
using std::ptrdiff_t;
using std::allocator;
- using std::iterator;
- using std::reverse_iterator;
using std::_Destroy;
// The _S_eos function is used for those functions that
template<class _Sequence, size_t _Buf_sz = 100>
class sequence_buffer
- : public iterator<std::output_iterator_tag, void, void, void, void>
+ : public std::iterator<std::output_iterator_tag, void, void, void, void>
{
public:
typedef typename _Sequence::value_type value_type;
template<class _CharT, class _Alloc>
class _Rope_iterator_base
- : public iterator<std::random_access_iterator_tag, _CharT>
+ : public std::iterator<std::random_access_iterator_tag, _CharT>
{
friend class rope<_CharT, _Alloc>;
public:
// but it's harder to make guarantees.
}
- typedef reverse_iterator<const_iterator> const_reverse_iterator;
+ typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
const_reverse_iterator
rbegin() const
mutable_end()
{ return(iterator(this, size())); }
- typedef reverse_iterator<iterator> reverse_iterator;
+ typedef std::reverse_iterator<iterator> reverse_iterator;
reverse_iterator
mutable_rbegin()