42#ifndef LIB_SCOPED_PTRVECT_H
43#define LIB_SCOPED_PTRVECT_H
70 using _Vec = std::vector<T*>;
77 using RcIter = IterType::WrappedConstIterType;
134 vec_.push_back (obj);
157 T* extracted =
static_cast<T*
> (objAddress);
159 if (pos !=
vec_.end() and *pos !=
nullptr)
wrapper for an existing Iterator type, automatically dereferencing the output of the former.
Accessing a STL element range through a Lumiera forward iterator, An instance of this iterator adapte...
Simple vector based collection of pointers, managing lifecycle of the pointed-to objects.
const_iterator begin() const
T & operator[](size_type i)
ScopedPtrVect(ScopedPtrVect &&src)
IterType::WrappedConstIterType RcIter
ScopedPtrVect & operator=(ScopedPtrVect &&other)
ScopedPtrVect(size_type capacity)
T const & const_reference
friend void swap(ScopedPtrVect &left, ScopedPtrVect &right)
IterType::ConstIterType ConstIterType
size_type max_size() const
PtrDerefIter< RIter > IterType
T * detach(void *objAddress)
withdraw responsibility for a specific object.
const_iterator end() const
size_type capacity() const
ConstIterType const_iterator
T & manage(T *obj)
take ownership of the given object, adding it at the end of the collection
Types marked with this mix-in may be moved and move-assigned.
Lumiera error handling (C++ interface).
#define ERROR_LOG_AND_IGNORE(_FLAG_, _OP_DESCR_)
convenience shortcut for a sequence of catch blocks just logging and consuming an error.
Extension adapter for Lumiera Forward Iterators to dereference any pointer values automatically.
This header is for including and configuring NoBug.
Implementation namespace for support and library code.
IterQueue< T > elements(T const &elm)
convenience free function to build an iterable sequence
LumieraError< LERR_(INVALID)> Invalid
constexpr IT find(IT, IT, V const &)
OBJ * unConst(const OBJ *)
shortcut to save some typing when having to define const and non-const variants of member functions
Mix-Ins to allow or prohibit various degrees of copying and cloning.
Tiny helper functions and shortcuts to be used everywhere Consider this header to be effectively incl...