16 #error no need to expose this header to Swig
20 #ifndef BORNAGAIN_BASE_TYPES_OWNINGVECTOR_H
21 #define BORNAGAIN_BASE_TYPES_OWNINGVECTOR_H
41 m_v.reserve(v.size());
50 m_v.emplace_back(e->clone());
70 size_t size()
const {
return m_v.size(); }
73 T*
const&
at(
int i)
const {
return m_v.at(i); }
74 const T*
back()
const {
return m_v.back(); }
78 const std::vector<const T*> ret(
m_v.begin(),
m_v.end());
85 ret.emplace_back(e->clone());
89 using Iterator =
typename std::vector<T*>::iterator;
A vector of unique pointers to objects that are cloneable.
OwningVector(const std::vector< T * > &v)
Constructor that takes over ownership of elements in given vector.
T *const & operator[](int i) const
OwningVector(const OwningVector &other)
Constructor that clones elements in given vector.
typename std::vector< T * >::const_iterator ConstIterator
ConstIterator begin() const
std::vector< T * > cloned_vector() const
OwningVector & operator=(const OwningVector &other)
ConstIterator end() const
std::vector< const T * > const_vector() const
T *const & at(int i) const
typename std::vector< T * >::iterator Iterator