Empirical
Classes | Public Types | Public Member Functions | Public Attributes | List of all members
emp::vector< T, Ts > Class Template Reference

Build a debug wrapper emp::vector around std::vector. More...

#include <vector.h>

Inheritance diagram for emp::vector< T, Ts >:

Classes

struct  iterator_wrapper
 Setup an iterator wrapper to make sure that they're not used again after a vector changes. More...
 

Public Types

using iterator = iterator_wrapper< typename stdv_t::iterator >
 
using const_iterator = iterator_wrapper< typename stdv_t::const_iterator >
 
using reverse_iterator = iterator_wrapper< typename stdv_t::reverse_iterator >
 
using const_reverse_iterator = iterator_wrapper< typename stdv_t::const_reverse_iterator >
 
using value_type = T
 
using size_type = typename stdv_t::size_type
 
using reference = typename stdv_t::reference
 
using const_reference = typename stdv_t::const_reference
 

Public Member Functions

 vector ()
 
 vector (const this_t &_in)
 
 vector (size_t size)
 
 vector (size_t size, const T &val)
 
 vector (std::initializer_list< T > in_list)
 
 vector (const stdv_t &in)
 
template<typename InputIt >
 vector (InputIt first, InputIt last)
 
 ~vector ()
 
size_t size () const
 
iterator begin () noexcept
 
const_iterator begin () const noexcept
 
iterator end () noexcept
 
const_iterator end () const noexcept
 
void resize (size_t new_size)
 
void resize (size_t new_size, const T &val)
 
this_toperator= (const this_t &)=default
 
T & operator[] (size_t pos)
 
const T & operator[] (size_t pos) const
 
T & back ()
 
const T & back () const
 
T & front ()
 
const T & front () const
 
template<typename... PB_Ts>
void push_back (PB_Ts &&...args)
 
void pop_back ()
 
template<typename... ARGS>
iterator insert (ARGS &&...args)
 
template<typename... ARGS>
iterator erase (ARGS &&...args)
 
template<typename... ARGS>
iterator emplace (ARGS &&...args)
 
template<typename... ARGS>
void emplace_back (ARGS &&...args)
 

Public Attributes

int revision
 Setup a revision number - iterators must match the revision of their vector. More...
 

Detailed Description

template<typename T, typename... Ts>
class emp::vector< T, Ts >

Build a debug wrapper emp::vector around std::vector.

Member Typedef Documentation

template<typename T, typename... Ts>
using emp::vector< T, Ts >::const_iterator = iterator_wrapper< typename stdv_t::const_iterator >
template<typename T, typename... Ts>
using emp::vector< T, Ts >::const_reference = typename stdv_t::const_reference
template<typename T, typename... Ts>
using emp::vector< T, Ts >::const_reverse_iterator = iterator_wrapper< typename stdv_t::const_reverse_iterator >
template<typename T, typename... Ts>
using emp::vector< T, Ts >::iterator = iterator_wrapper< typename stdv_t::iterator >
template<typename T, typename... Ts>
using emp::vector< T, Ts >::reference = typename stdv_t::reference
template<typename T, typename... Ts>
using emp::vector< T, Ts >::reverse_iterator = iterator_wrapper< typename stdv_t::reverse_iterator >
template<typename T, typename... Ts>
using emp::vector< T, Ts >::size_type = typename stdv_t::size_type
template<typename T, typename... Ts>
using emp::vector< T, Ts >::value_type = T

Constructor & Destructor Documentation

template<typename T, typename... Ts>
emp::vector< T, Ts >::vector ( )
inline
template<typename T, typename... Ts>
emp::vector< T, Ts >::vector ( const this_t _in)
inline
template<typename T, typename... Ts>
emp::vector< T, Ts >::vector ( size_t  size)
inline
template<typename T, typename... Ts>
emp::vector< T, Ts >::vector ( size_t  size,
const T &  val 
)
inline
template<typename T, typename... Ts>
emp::vector< T, Ts >::vector ( std::initializer_list< T >  in_list)
inline
template<typename T, typename... Ts>
emp::vector< T, Ts >::vector ( const stdv_t &  in)
inline
template<typename T, typename... Ts>
template<typename InputIt >
emp::vector< T, Ts >::vector ( InputIt  first,
InputIt  last 
)
inline
template<typename T, typename... Ts>
emp::vector< T, Ts >::~vector ( )
inline

Member Function Documentation

template<typename T, typename... Ts>
T& emp::vector< T, Ts >::back ( )
inline
template<typename T, typename... Ts>
const T& emp::vector< T, Ts >::back ( ) const
inline
template<typename T, typename... Ts>
iterator emp::vector< T, Ts >::begin ( )
inlinenoexcept
template<typename T, typename... Ts>
const_iterator emp::vector< T, Ts >::begin ( ) const
inlinenoexcept
template<typename T, typename... Ts>
template<typename... ARGS>
iterator emp::vector< T, Ts >::emplace ( ARGS &&...  args)
inline
template<typename T, typename... Ts>
template<typename... ARGS>
void emp::vector< T, Ts >::emplace_back ( ARGS &&...  args)
inline
template<typename T, typename... Ts>
iterator emp::vector< T, Ts >::end ( )
inlinenoexcept
template<typename T, typename... Ts>
const_iterator emp::vector< T, Ts >::end ( ) const
inlinenoexcept
template<typename T, typename... Ts>
template<typename... ARGS>
iterator emp::vector< T, Ts >::erase ( ARGS &&...  args)
inline
template<typename T, typename... Ts>
T& emp::vector< T, Ts >::front ( )
inline
template<typename T, typename... Ts>
const T& emp::vector< T, Ts >::front ( ) const
inline
template<typename T, typename... Ts>
template<typename... ARGS>
iterator emp::vector< T, Ts >::insert ( ARGS &&...  args)
inline
template<typename T, typename... Ts>
this_t& emp::vector< T, Ts >::operator= ( const this_t )
default
template<typename T, typename... Ts>
T& emp::vector< T, Ts >::operator[] ( size_t  pos)
inline
template<typename T, typename... Ts>
const T& emp::vector< T, Ts >::operator[] ( size_t  pos) const
inline
template<typename T, typename... Ts>
void emp::vector< T, Ts >::pop_back ( )
inline
template<typename T, typename... Ts>
template<typename... PB_Ts>
void emp::vector< T, Ts >::push_back ( PB_Ts &&...  args)
inline
template<typename T, typename... Ts>
void emp::vector< T, Ts >::resize ( size_t  new_size)
inline
template<typename T, typename... Ts>
void emp::vector< T, Ts >::resize ( size_t  new_size,
const T &  val 
)
inline
template<typename T, typename... Ts>
size_t emp::vector< T, Ts >::size ( ) const
inline

Member Data Documentation

template<typename T, typename... Ts>
int emp::vector< T, Ts >::revision

Setup a revision number - iterators must match the revision of their vector.


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