Library: General utilities
raw_storage_iteratoriterator
Enables iterator-based algorithms to store results in uninitialized memory.
#include <memory>
namespace std {
template <class OutputIterator, class T>
class raw_storage_iterator;
}
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.
namespace std {
template <class OutputIterator, class T>
class raw_storage_iterator
: public iterator <output_iterator_tag,
void,void,void,void> {
public:
typedef OutputIterator iterator_type;
explicit raw_storage_iterator(OutputIterator);
raw_storage_iterator<OutputIterator, T>&
operator*();
raw_storage_iterator<OutputIterator, T>&
operator=(const T&);
raw_storage_iterator<OutputIterator, T>&
operator++();
raw_storage_iterator<OutputIterator, T>
operator++(int);
};
}
raw_storage_iterator (iterator_type x);
Initializes the iterator to point to the same value as x.
raw_storage_iterator <OutputIterator, T>& operator=(const T& element);
Constructs, using a placement operator new, an instance of T, initialized to the value element, at the location pointed to by the iterator.
raw_storage_iterator<OutputIterator,T>& operator*();
Returns *this.
raw_storage_iterator& operator++();
Pre-increment: advances the iterator and returns a reference to the updated iterator.
raw_storage_iterator operator++(int);
Post-increment: advances the iterator and returns the old value of the iterator.
ISO/IEC 14882:1998 -- International Standard for Information Systems -- Programming Language C++, Section 20.4.2