OpenSceneGraph  3.0.1
Public Types | Public Member Functions | Friends
osg::MixinVector Class Reference

MixinVector is a base class that allows inheritance to be used to easily emulate derivation from std::vector but without introducing undefined behaviour through violation of virtual destructor rules. More...

Inheritance diagram for osg::MixinVector:
Inheritance graph
[legend]

List of all members.

Public Types

typedef vector_type::allocator_type allocator_type
typedef vector_type::value_type value_type
typedef vector_type::const_pointer const_pointer
typedef vector_type::pointer pointer
typedef
vector_type::const_reference 
const_reference
typedef vector_type::reference reference
typedef vector_type::const_iterator const_iterator
typedef vector_type::iterator iterator
typedef
vector_type::const_reverse_iterator 
const_reverse_iterator
typedef
vector_type::reverse_iterator 
reverse_iterator
typedef vector_type::size_type size_type
typedef
vector_type::difference_type 
difference_type

Public Member Functions

 MixinVector ()
 MixinVector (size_type initial_size, const value_type &fill_value=value_type())
template<class InputIterator >
 MixinVector (InputIterator first, InputIterator last)
 MixinVector (const vector_type &other)
 MixinVector (const MixinVector &other)
MixinVectoroperator= (const vector_type &other)
MixinVectoroperator= (const MixinVector &other)
virtual ~MixinVector ()
void clear ()
void resize (size_type new_size, const value_type &fill_value=value_type())
void reserve (size_type new_capacity)
void swap (vector_type &other)
void swap (MixinVector &other)
bool empty () const
size_type size () const
size_type capacity () const
size_type max_size () const
allocator_type get_allocator () const
const_iterator begin () const
iterator begin ()
const_iterator end () const
iterator end ()
const_reverse_iterator rbegin () const
reverse_iterator rbegin ()
const_reverse_iterator rend () const
reverse_iterator rend ()
const_reference operator[] (size_type index) const
reference operator[] (size_type index)
const_reference at (size_type index) const
reference at (size_type index)
void assign (size_type count, const value_type &value)
template<class Iter >
void assign (Iter first, Iter last)
void push_back (const value_type &value)
void pop_back ()
iterator erase (iterator where)
iterator erase (iterator first, iterator last)
iterator insert (iterator where, const value_type &value)
template<class InputIterator >
void insert (iterator where, InputIterator first, InputIterator last)
void insert (iterator where, size_type count, const value_type &value)
const_reference back () const
reference back ()
const_reference front () const
reference front ()
vector_type & asVector ()
const vector_type & asVector () const

Friends

bool operator== (const MixinVector< ValueT > &left, const MixinVector< ValueT > &right)
bool operator== (const MixinVector< ValueT > &left, const std::vector< ValueT > &right)
bool operator== (const std::vector< ValueT > &left, const MixinVector< ValueT > &right)
bool operator!= (const MixinVector< ValueT > &left, const MixinVector< ValueT > &right)
bool operator!= (const MixinVector< ValueT > &left, const std::vector< ValueT > &right)
bool operator!= (const std::vector< ValueT > &left, const MixinVector< ValueT > &right)
bool operator< (const MixinVector< ValueT > &left, const MixinVector< ValueT > &right)
bool operator< (const MixinVector< ValueT > &left, const std::vector< ValueT > &right)
bool operator< (const std::vector< ValueT > &left, const MixinVector< ValueT > &right)
bool operator> (const MixinVector< ValueT > &left, const MixinVector< ValueT > &right)
bool operator> (const MixinVector< ValueT > &left, const std::vector< ValueT > &right)
bool operator> (const std::vector< ValueT > &left, const MixinVector< ValueT > &right)
bool operator<= (const MixinVector< ValueT > &left, const MixinVector< ValueT > &right)
bool operator<= (const MixinVector< ValueT > &left, const std::vector< ValueT > &right)
bool operator<= (const std::vector< ValueT > &left, const MixinVector< ValueT > &right)
bool operator>= (const MixinVector< ValueT > &left, const MixinVector< ValueT > &right)
bool operator>= (const MixinVector< ValueT > &left, const std::vector< ValueT > &right)
bool operator>= (const std::vector< ValueT > &left, const MixinVector< ValueT > &right)

Detailed Description

MixinVector is a base class that allows inheritance to be used to easily emulate derivation from std::vector but without introducing undefined behaviour through violation of virtual destructor rules.

Author:
Neil Groves

Member Typedef Documentation

typedef vector_type::allocator_type osg::MixinVector::allocator_type
typedef vector_type::const_iterator osg::MixinVector::const_iterator
typedef vector_type::const_pointer osg::MixinVector::const_pointer
typedef vector_type::const_reference osg::MixinVector::const_reference
typedef vector_type::const_reverse_iterator osg::MixinVector::const_reverse_iterator
typedef vector_type::difference_type osg::MixinVector::difference_type
typedef vector_type::iterator osg::MixinVector::iterator
typedef vector_type::pointer osg::MixinVector::pointer
typedef vector_type::reference osg::MixinVector::reference
typedef vector_type::reverse_iterator osg::MixinVector::reverse_iterator
typedef vector_type::size_type osg::MixinVector::size_type
typedef vector_type::value_type osg::MixinVector::value_type

Constructor & Destructor Documentation

osg::MixinVector::MixinVector ( ) [inline, explicit]
osg::MixinVector::MixinVector ( size_type  initial_size,
const value_type fill_value = value_type() 
) [inline, explicit]
template<class InputIterator >
osg::MixinVector::MixinVector ( InputIterator  first,
InputIterator  last 
) [inline]
osg::MixinVector::MixinVector ( const vector_type &  other) [inline]
osg::MixinVector::MixinVector ( const MixinVector other) [inline]
virtual osg::MixinVector::~MixinVector ( ) [inline, virtual]

Member Function Documentation

void osg::MixinVector::assign ( size_type  count,
const value_type value 
) [inline]
template<class Iter >
void osg::MixinVector::assign ( Iter  first,
Iter  last 
) [inline]
vector_type& osg::MixinVector::asVector ( ) [inline]
const vector_type& osg::MixinVector::asVector ( ) const [inline]
const_reference osg::MixinVector::at ( size_type  index) const [inline]
reference osg::MixinVector::at ( size_type  index) [inline]
const_reference osg::MixinVector::back ( ) const [inline]
reference osg::MixinVector::back ( ) [inline]
const_iterator osg::MixinVector::begin ( ) const [inline]
iterator osg::MixinVector::begin ( ) [inline]
size_type osg::MixinVector::capacity ( ) const [inline]
void osg::MixinVector::clear ( ) [inline]
bool osg::MixinVector::empty ( ) const [inline]
const_iterator osg::MixinVector::end ( ) const [inline]
iterator osg::MixinVector::end ( ) [inline]
iterator osg::MixinVector::erase ( iterator  where) [inline]
iterator osg::MixinVector::erase ( iterator  first,
iterator  last 
) [inline]
const_reference osg::MixinVector::front ( ) const [inline]
reference osg::MixinVector::front ( ) [inline]
allocator_type osg::MixinVector::get_allocator ( ) const [inline]
iterator osg::MixinVector::insert ( iterator  where,
const value_type value 
) [inline]
template<class InputIterator >
void osg::MixinVector::insert ( iterator  where,
InputIterator  first,
InputIterator  last 
) [inline]
void osg::MixinVector::insert ( iterator  where,
size_type  count,
const value_type value 
) [inline]
size_type osg::MixinVector::max_size ( ) const [inline]
MixinVector& osg::MixinVector::operator= ( const vector_type &  other) [inline]
MixinVector& osg::MixinVector::operator= ( const MixinVector other) [inline]
const_reference osg::MixinVector::operator[] ( size_type  index) const [inline]
reference osg::MixinVector::operator[] ( size_type  index) [inline]
void osg::MixinVector::pop_back ( ) [inline]
void osg::MixinVector::push_back ( const value_type value) [inline]
const_reverse_iterator osg::MixinVector::rbegin ( ) const [inline]
reverse_iterator osg::MixinVector::rbegin ( ) [inline]
const_reverse_iterator osg::MixinVector::rend ( ) const [inline]
reverse_iterator osg::MixinVector::rend ( ) [inline]
void osg::MixinVector::reserve ( size_type  new_capacity) [inline]
void osg::MixinVector::resize ( size_type  new_size,
const value_type fill_value = value_type() 
) [inline]
size_type osg::MixinVector::size ( ) const [inline]
void osg::MixinVector::swap ( vector_type &  other) [inline]
void osg::MixinVector::swap ( MixinVector other) [inline]

Friends And Related Function Documentation

bool operator!= ( const MixinVector< ValueT > &  left,
const MixinVector< ValueT > &  right 
) [friend]
bool operator!= ( const MixinVector< ValueT > &  left,
const std::vector< ValueT > &  right 
) [friend]
bool operator!= ( const std::vector< ValueT > &  left,
const MixinVector< ValueT > &  right 
) [friend]
bool operator< ( const MixinVector< ValueT > &  left,
const MixinVector< ValueT > &  right 
) [friend]
bool operator< ( const MixinVector< ValueT > &  left,
const std::vector< ValueT > &  right 
) [friend]
bool operator< ( const std::vector< ValueT > &  left,
const MixinVector< ValueT > &  right 
) [friend]
bool operator<= ( const MixinVector< ValueT > &  left,
const MixinVector< ValueT > &  right 
) [friend]
bool operator<= ( const MixinVector< ValueT > &  left,
const std::vector< ValueT > &  right 
) [friend]
bool operator<= ( const std::vector< ValueT > &  left,
const MixinVector< ValueT > &  right 
) [friend]
bool operator== ( const MixinVector< ValueT > &  left,
const MixinVector< ValueT > &  right 
) [friend]
bool operator== ( const MixinVector< ValueT > &  left,
const std::vector< ValueT > &  right 
) [friend]
bool operator== ( const std::vector< ValueT > &  left,
const MixinVector< ValueT > &  right 
) [friend]
bool operator> ( const MixinVector< ValueT > &  left,
const MixinVector< ValueT > &  right 
) [friend]
bool operator> ( const MixinVector< ValueT > &  left,
const std::vector< ValueT > &  right 
) [friend]
bool operator> ( const std::vector< ValueT > &  left,
const MixinVector< ValueT > &  right 
) [friend]
bool operator>= ( const MixinVector< ValueT > &  left,
const MixinVector< ValueT > &  right 
) [friend]
bool operator>= ( const MixinVector< ValueT > &  left,
const std::vector< ValueT > &  right 
) [friend]
bool operator>= ( const std::vector< ValueT > &  left,
const MixinVector< ValueT > &  right 
) [friend]

The documentation for this class was generated from the following file:

osg logo
Generated at Mon Oct 3 2011 12:39:42 for the OpenSceneGraph by doxygen 1.7.5.