* purpose. It is provided "as is" without express or implied warranty.
*/
-/* NOTE: This is an internal header file, included by other STL headers.
- * You should not attempt to use it directly.
+/** @file stl_iterator.h
+ * This is an internal header file, included by other library headers.
+ * You should not attempt to use it directly.
*/
-#ifndef __SGI_STL_INTERNAL_ITERATOR_H
-#define __SGI_STL_INTERNAL_ITERATOR_H
+#ifndef __GLIBCPP_INTERNAL_ITERATOR_H
+#define __GLIBCPP_INTERNAL_ITERATOR_H
namespace std
{
// 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 _M_current;
typedef typename iterator_traits<_Iterator>::pointer pointer;
public:
- reverse_iterator() {}
+ reverse_iterator() { }
explicit
- reverse_iterator(iterator_type __x) : _M_current(__x) {}
+ reverse_iterator(iterator_type __x) : _M_current(__x) { }
reverse_iterator(const reverse_iterator& __x)
- : _M_current(__x._M_current) { }
+ : _M_current(__x._M_current) { }
template<typename _Iter>
reverse_iterator(const reverse_iterator<_Iter>& __x)
- : _M_current(__x.base()) {}
+ : _M_current(__x.base()) { }
iterator_type
base() const { return _M_current; }
// 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=(const typename _Container::const_reference __value)
+ 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=(const typename _Container::const_reference __value)
+ 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