Standard C++ Library Reference ISO/IEC (VERSION3)

explicit raw_storage_iterator(FwdIt first);
raw_storage_iterator<FwdIt, Ty>& operator*();
raw_storage_iterator<FwdIt, Ty>&
operator=(const Ty& val);
raw_storage_iterator<FwdIt, Ty>& operator++();
raw_storage_iterator<FwdIt, Ty> operator++(int);
};
The class describes an output iterator that constructs objects of type Ty in the sequence it
generates. An object of class raw_storage_iterator<FwdIt, Ty> accesses storage
through a forward iterator object, of class FwdIt, that you specify when you construct the
object. For an object first of class FwdIt, the expression &*first must designate
unconstructed storage for the next object (of type Ty) in the generated sequence.
raw_storage_iterator::element_type
typedef Ty element_type;
The type is a synonym for the template parameter Ty.
raw_storage_iterator::iter_type
typedef FwdIt iter_type;
The type is a synonym for the template parameter FwdIt.
raw_storage_iterator::operator*
raw_storage_iterator<FwdIt, Ty>& operator*();
The indirection operator returns *this (so that operator=(const Ty&) can perform the
actual store in an expression such as *ptr = val).
raw_storage_iterator::operator=
raw_storage_iterator<FwdIt, Ty>& operator=(const Ty& val);
The assignment operator constructs the next object in the output sequence using the stored
iterator value first, by evaluating the placement new expression new ((void
*)&*first) Ty(val). The function returns *this.
raw_storage_iterator::operator++
raw_storage_iterator<FwdIt, Ty>& operator++();
raw_storage_iterator<FwdIt, Ty> operator++(int);