Milo  0.1
Milo:EquationManipulationProgram
Public Types | Public Member Functions | List of all members
SmartVector< T > Class Template Reference

#include <smart.h>

Inheritance diagram for SmartVector< T >:
Inheritance graph
[legend]
Collaboration diagram for SmartVector< T >:
Collaboration graph
[legend]

Public Types

using iterator = typename std::vector< SmartPtr< T > >::iterator
 
using const_iterator = typename std::vector< SmartPtr< T > >::const_iterator
 
using size_type = typename std::vector< std::shared_ptr< T > >::size_type
 
using base = typename std::vector< SmartPtr< T > >
 

Public Member Functions

 SmartVector ()
 
 SmartVector (std::initializer_list< T * > li)
 
 SmartVector (T *p)
 
 SmartVector (std::initializer_list< SmartPtr< T > > li)
 
void push_back (T *p)
 
void push_back (const SmartPtr< T > &)=delete
 
void push_back (const SmartPtr< T > &&)=delete
 
iterator insert (const_iterator pos, T *val)
 
iterator insert (const_iterator pos, size_type n, const T *val)
 
iterator insert (const_iterator position, iterator first, iterator last)
 
iterator insert (const_iterator pos, const SmartPtr< T > val)
 
iterator insert (const_iterator pos, size_type n, const SmartPtr< T > val)=delete
 
iterator insert (const_iterator pos, std::initializer_list< SmartPtr< T > > il)=delete
 
void swap (SmartVector< T > &v)
 
void swap (base &)=delete
 
void merge (SmartVector< T > &v, iterator pos)
 
void merge (SmartVector< T > &v)
 
void insert_index (int index, T *e)
 
void erase_index (int index)
 
int get_index (T *e) const
 
iterator find (T *e)
 

Detailed Description

template<class T>
class SmartVector< T >

SmartVector will hold objects with share pointers but can be used with raw pointers.

Member Typedef Documentation

template<class T>
using SmartVector< T >::iterator = typename std::vector< SmartPtr<T> >::iterator

Aliases for SmartVector

Constructor & Destructor Documentation

template<class T>
SmartVector< T >::SmartVector ( )
inline

Default Constructor for SmartVector

template<class T>
SmartVector< T >::SmartVector ( std::initializer_list< T * >  li)
inlineexplicit

Construct vector from initializer list of raw pointers

template<class T>
SmartVector< T >::SmartVector ( T *  p)
inlineexplicit

Constructor for SmartVector initialized with a single object

template<class T>
SmartVector< T >::SmartVector ( std::initializer_list< SmartPtr< T > >  li)
inline

Construct vector from initializer list of smart pointers

Member Function Documentation

template<class T>
void SmartVector< T >::erase_index ( int  index)
inline

Erase element at index.

template<class T>
iterator SmartVector< T >::find ( T *  e)
inline

Get iterator of element in vector

template<class T>
int SmartVector< T >::get_index ( T *  e) const
inline

Get index of element in vector

template<class T>
iterator SmartVector< T >::insert ( const_iterator  pos,
T *  val 
)
inline

Insert object at position in vector

template<class T>
iterator SmartVector< T >::insert ( const_iterator  pos,
size_type  n,
const T *  val 
)
inline

Insert object at position in vector n times

template<class T>
iterator SmartVector< T >::insert ( const_iterator  position,
iterator  first,
iterator  last 
)
inline

Insert objects at position in vector from iterator range

template<class T>
iterator SmartVector< T >::insert ( const_iterator  pos,
const SmartPtr< T >  val 
)
inline

Insert smart_pointer at position in vector

template<class T>
iterator SmartVector< T >::insert ( const_iterator  pos,
size_type  n,
const SmartPtr< T >  val 
)
delete

Delete this member function that has shared pointer

template<class T>
iterator SmartVector< T >::insert ( const_iterator  pos,
std::initializer_list< SmartPtr< T > >  il 
)
delete

Delete this member function that has shared pointer

template<class T>
void SmartVector< T >::insert_index ( int  index,
T *  e 
)
inline

Insert element at index

template<class T>
void SmartVector< T >::merge ( SmartVector< T > &  v,
iterator  pos 
)
inline

Marge another SmartVector at arbitrary positon

template<class T>
void SmartVector< T >::merge ( SmartVector< T > &  v)
inline

Merge another SmartVector at end

template<class T>
void SmartVector< T >::push_back ( T *  p)
inline

Push back object into vector managed by share pointer

template<class T>
void SmartVector< T >::push_back ( const SmartPtr< T > &  )
delete

Don't allow push back with shared pointer

template<class T>
void SmartVector< T >::push_back ( const SmartPtr< T > &&  )
delete

Don't allow push back with shared pointer

template<class T>
void SmartVector< T >::swap ( SmartVector< T > &  v)
inline

Swap smart vector storage.

template<class T>
void SmartVector< T >::swap ( base &  )
delete

Delete swap of vectors


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