+2001-12-26 Benjamin Kosnik <bkoz@waller.constant.com>
+
+ * testsuite/24_iterators/insert_iterator.cc (test02): Add.
+ * testsuite/24_iterators/front_insert_iterator.cc (test02): Add.
+ * testsuite/24_iterators/back_insert_iterator.cc (test02): Add.
+ * testsuite/24_iterators/reverse_iterator.cc (test02): Add.
+
+ * include/bits/stl_iterator.h (reverse_iterator): Uglify member
+ current to _M_current.
+ (back_insert_iterator): Ulify member container to _M_container.
+ (front_insert_iterator): Same.
+ (insert_iterator): Same.
+
2001-12-25 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
* include/bits/std_limits.h (__glibcpp_xxx_is_modulo): New
(numeric_limits<>::is_modulo): Get value from corresponding
__glibcpp_xxx_is_modulo macro.
-Sun Dec 23 18:47:24 2001 Jeffrey A Law (law@redhat.com)
+2001-12-23 Jeffrey A Law <law@redhat.com>
* config/os/hpux/bits/os_defines.h: Do not include <_sys/inttypes.h>.
Twiddle return types for strtoll and strtoull to avoid using
* configure.target (CPULIMITSH): Fix typo in alpha case.
-Sat Dec 22 09:52:41 2001 Jeffrey A Law (law@redhat.com)
+2001-12-22 Jeffrey A Law <law@redhat.com>
- * config/os/hpux/bits/os_defines.h: Update to avoid #defines
+ * config/os/hpux/bits/os_defines.h: Update to avoid #defines
for strtoll and strtoull.
-Fri Dec 21 17:35:21 2001 Jeffrey A Law (law@redhat.com)
-
+2001-12-21 Jeffrey A Law <law@redhat.com>
+
* config/os/hpux/bits/os_defines.h: Include <sys/_inttypes.h.
Define strtoll and strtoull. Provide prototypes for
__strtoll and __strtoull. Define _GLIBCPP_USE_LONG_LONG
// 24.4.1 Reverse iterators
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>
+ : 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>
{
protected:
- _Iterator current;
+ _Iterator _M_current;
public:
typedef _Iterator iterator_type;
typedef typename iterator_traits<_Iterator>::pointer pointer;
public:
- reverse_iterator() {}
+ reverse_iterator() { }
explicit
- reverse_iterator(iterator_type __x) : current(__x) {}
+ reverse_iterator(iterator_type __x) : _M_current(__x) { }
reverse_iterator(const reverse_iterator& __x)
- : current(__x.current) { }
+ : _M_current(__x._M_current) { }
template<typename _Iter>
reverse_iterator(const reverse_iterator<_Iter>& __x)
- : current(__x.base()) {}
+ : _M_current(__x.base()) { }
iterator_type
- base() const { return current; }
+ base() const { return _M_current; }
reference
operator*() const
{
- _Iterator __tmp = current;
+ _Iterator __tmp = _M_current;
return *--__tmp;
}
reverse_iterator&
operator++()
{
- --current;
+ --_M_current;
return *this;
}
operator++(int)
{
reverse_iterator __tmp = *this;
- --current;
+ --_M_current;
return __tmp;
}
reverse_iterator&
operator--()
{
- ++current;
+ ++_M_current;
return *this;
}
reverse_iterator operator--(int)
{
reverse_iterator __tmp = *this;
- ++current;
+ ++_M_current;
return __tmp;
}
reverse_iterator
operator+(difference_type __n) const
- { return reverse_iterator(current - __n); }
+ { return reverse_iterator(_M_current - __n); }
reverse_iterator&
operator+=(difference_type __n)
{
- current -= __n;
+ _M_current -= __n;
return *this;
}
reverse_iterator
operator-(difference_type __n) const
- { return reverse_iterator(current + __n); }
+ { return reverse_iterator(_M_current + __n); }
reverse_iterator&
operator-=(difference_type __n)
// 24.4.2.2.1 back_insert_iterator
template<typename _Container>
- class back_insert_iterator
+ class back_insert_iterator
: public iterator<output_iterator_tag, void, void, void, void>
{
protected:
- _Container* container;
+ _Container* _M_container;
public:
typedef _Container container_type;
explicit
- back_insert_iterator(_Container& __x) : container(&__x) {}
+ back_insert_iterator(_Container& __x) : _M_container(&__x) { }
back_insert_iterator&
operator=(typename _Container::const_reference __value)
{
- container->push_back(__value);
+ _M_container->push_back(__value);
return *this;
}
template<typename _Container>
class front_insert_iterator
- : public iterator<output_iterator_tag, void, void, void, void>
+ : public iterator<output_iterator_tag, void, void, void, void>
{
protected:
- _Container* container;
+ _Container* _M_container;
public:
typedef _Container container_type;
- explicit front_insert_iterator(_Container& __x) : container(&__x) {}
+ explicit front_insert_iterator(_Container& __x) : _M_container(&__x) { }
front_insert_iterator&
operator=(typename _Container::const_reference __value)
{
- container->push_front(__value);
+ _M_container->push_front(__value);
return *this;
}
};
template<typename _Container>
- inline front_insert_iterator<_Container> front_inserter(_Container& __x)
- { return front_insert_iterator<_Container>(__x); }
+ inline front_insert_iterator<_Container>
+ front_inserter(_Container& __x)
+ { return front_insert_iterator<_Container>(__x); }
template<typename _Container>
class insert_iterator
- : public iterator<output_iterator_tag, void, void, void, void>
+ : public iterator<output_iterator_tag, void, void, void, void>
{
protected:
- _Container* container;
+ _Container* _M_container;
typename _Container::iterator iter;
public:
typedef _Container container_type;
insert_iterator(_Container& __x, typename _Container::iterator __i)
- : container(&__x), iter(__i) {}
+ : _M_container(&__x), iter(__i) {}
insert_iterator&
operator=(const typename _Container::const_reference __value)
{
- iter = container->insert(iter, __value);
+ iter = _M_container->insert(iter, __value);
++iter;
return *this;
}
};
template<typename _Container, typename _Iterator>
- inline
- insert_iterator<_Container> inserter(_Container& __x, _Iterator __i)
+ inline insert_iterator<_Container>
+ inserter(_Container& __x, _Iterator __i)
{
- typedef typename _Container::iterator __iter;
- return insert_iterator<_Container>(__x, __iter(__i));
+ return insert_iterator<_Container>(__x,
+ typename _Container::iterator(__i));
}
// This iterator adapter is 'normal' in the sense that it does not