Memory Management
Enables iterator-based algorithms to store results into uninitialized memory.
#include <memory>
template <class OutputIterator, class T> class raw_storage_iterator : public output_iterator { public: explicit raw_storage_iterator (OutputIterator); raw_storage_iterator<OutputIterator, t>& operator*(); raw_storage_iterator<OutputIterator, T>& operator= (const T&); raw_storage_iterator<OutputIterator>& operator++(); raw_storage_iterator<OutputIterator> operator++ (int); };
Class raw_storage_iterator enables iterator-based algorithms to store their results in uninitialized memory. The template parameter, OutputIterator is required to have its operator* return an object for which operator& is both defined and returns a pointer to T.
raw_storage_iterator (OutputIterator x);
Initializes the iterator to point to the same value that x points to.
raw_storage_iterator <OutputIterator, T>& operator =(const T& element);
Constructs an instance of T, initialized to the value element , at the location pointed to by the iterator.
raw_storage_iterator <OutputIterator, T>& operator++();
Pre-increment: advances the iterator and returns a reference to the updated iterator.
raw_storage_iterator<OutputIterator> operator++ (int);
Post-increment: advances the iterator and returns the old value of the iterator.