3 #include <opals/fwd.hpp>
8 struct bidirectional_iterator_tag;
50 typedef T
const& const_reference;
51 typedef std::size_t size_type;
52 typedef std::ptrdiff_t difference_type;
54 template<
bool Const,
bool Forward>
66 List( size_type n,
const T& val );
77 List& operator=(
const List& other );
78 void swap(
List& other );
99 const_reference front()
const;
100 const_reference back()
const;
105 size_type size()
const;
106 size_type max_size()
const;
109 void resize( size_type n, T val = T() );
114 void push_front(
const T& val );
115 void push_back(
const T& val );
118 void insert(
iterator pos, size_type n,
const T& val );
142 void remove(
const T& val );
148 void merge(
List& from );
163 template<
bool Const,
bool Forward>
169 template<
class T1,
bool Const1>
170 struct ConstSel {
typedef T1 Type; };
172 struct ConstSel<T1,true> {
typedef const T1 Type; };
175 typedef std::bidirectional_iterator_tag iterator_category;
176 typedef T value_type;
177 typedef typename List<T>::difference_type difference_type;
178 typedef typename ConstSel<T,Const>::Type& reference;
179 typedef typename ConstSel<T,Const>::Type* pointer;
180 typedef Iterator<true,Forward> ConstIterator;
183 Iterator(
const Iterator& other );
184 operator ConstIterator()
const;
186 Iterator &operator= (
const Iterator& other );
187 reference operator* ()
const;
188 pointer operator->()
const;
189 Iterator& operator++();
190 Iterator operator++(
int);
191 Iterator& operator--();
192 Iterator operator--(
int);
194 bool operator==(
const Iterator<true, Forward>& other )
const;
195 bool operator==(
const Iterator<false,Forward>& other )
const;
196 bool operator!=(
const Iterator<true, Forward>& other )
const;
197 bool operator!=(
const Iterator<false,Forward>& other )
const;