22 #ifndef _GU_VECTOR_HPP_
23 #define _GU_VECTOR_HPP_
25 #include "gu_reserved_container.hpp"
41 typedef const T& const_reference;
42 typedef typename ReservedAllocator<value_type,0>::size_type size_type;
44 virtual reference operator[] (size_type i) = 0;
45 virtual const_reference operator[] (size_type i)
const = 0;
47 virtual size_type size ()
const = 0;
48 virtual void reserve (size_type n) = 0;
49 virtual void resize (size_type n, value_type val = value_type()) = 0;
60 template <typename T, typename VectorBase<T>::size_type capacity>
69 rv_().assign(other().begin(), other().end());
80 typedef std::vector<T, Allocator> ContainerType;
82 ContainerType& operator() () {
return rv_.container(); }
83 const ContainerType& operator() ()
const {
return rv_.container(); }
85 ContainerType* operator-> () {
return rv_.operator->(); }
86 const ContainerType* operator-> ()
const {
return rv_.operator->(); }
88 typedef typename VectorBase<T>::size_type size_type;
90 T& operator[] (size_type i) {
return operator()()[i]; }
91 const T& operator[] (size_type i)
const {
return operator()()[i]; }
93 size_type size ()
const {
return operator()().size(); }
94 void reserve (size_type n) { operator()().reserve(n); }
96 typedef typename VectorBase<T>::value_type value_type;
98 void resize (size_type n, value_type val = value_type())
100 operator()().resize(n, val);
105 return (rv_.reserved_buffer() != &rv_.container()[0]);
115 template <typename T, typename VectorBase<T>::size_type capacity>
120 typedef typename VectorBase<T>::size_type size_type;
121 typedef typename VectorBase<T>::value_type value_type;
122 typedef typename VectorBase<T>::reference reference;
123 typedef typename VectorBase<T>::const_reference const_reference;
127 template <typename VectorBase<T>::size_type C>
130 v_().assign(other().begin(), other().end());
133 reference operator[] (size_type i) {
return v_[i]; }
134 const_reference operator[] (size_type i)
const {
return v_[i]; }
136 size_type size ()
const {
return v_.size(); }
137 void reserve (size_type n) { v_.reserve(); }
138 void resize (size_type n, value_type val = value_type())
Definition: gu_vector.hpp:116
Definition: gu_vector.hpp:61
Definition: gu_reserved_container.hpp:46
Definition: gu_vector.hpp:35