28 #ifndef WMIXINVECTOR_H
29 #define WMIXINVECTOR_H
35 #include "WStringUtils.h"
72 typedef typename vector_type::pointer
pointer;
92 typedef typename vector_type::iterator
iterator;
134 :
_impl( initial_size, fill_value )
145 template<
class InputIterator >
WMixinVector( InputIterator first, InputIterator last )
146 :
_impl( first, last )
219 _impl.resize( new_size, fill_value );
229 _impl.reserve( new_capacity );
259 return _impl.empty();
279 return _impl.capacity();
289 return _impl.max_size();
299 return _impl.get_allocator();
309 return _impl.begin();
319 return _impl.begin();
349 return _impl.rbegin();
359 return _impl.rbegin();
415 return _impl.at( index );
427 return _impl.at( index );
438 _impl.assign( count, value );
447 template<
class Iter >
void assign( Iter first, Iter last )
449 _impl.assign( first, last );
459 _impl.push_back( value );
479 return _impl.erase( where );
492 return _impl.erase( first, last );
505 return _impl.insert( where, value );
515 template<
class InputIterator >
void insert(
iterator where, InputIterator first, InputIterator last )
517 _impl.insert( where, first, last );
529 _impl.insert( where, count, value );
559 return _impl.front();
569 return _impl.front();
616 return left.
_impl == right;
629 return left == right.
_impl;
656 return left.
_impl != right;
669 return left != right.
_impl;
683 return left.
_impl < right._impl;
694 friend inline bool operator<( const WMixinVector< ValueT >& left,
const std::vector< ValueT >& right )
696 return left._impl < right;
709 return left < right.
_impl;
736 return left.
_impl > right;
749 return left > right.
_impl;
763 return left.
_impl <= right._impl;
774 friend inline bool operator<=( const WMixinVector< ValueT >& left,
const std::vector< ValueT >& right )
776 return left._impl <= right;
789 return left <= right.
_impl;
816 return left.
_impl >= right;
829 return left >= right.
_impl;
858 std::swap( left.
asVector(), right );
869 std::swap( left, right.
asVector() );
880 template<
class ValueT >
inline std::ostream& operator<<( std::ostream& os, const WMixinVector< ValueT >& v )
882 using string_utils::operator<<;
887 #endif // WMIXINVECTOR_H