raw_storage_iterator

template<class FwdIt, class T>
    class raw_storage_iterator
         : public iterator<output_iterator_tag, void, void> {
public:
    typedef FwdIt iterator_type;
    typedef T element_type;
    explicit raw_storage_iterator(FwdIt it);
    raw_storage_iterator<FwdIt, T>& operator*();
    raw_storage_iterator<FwdIt, T>& operator=(const T& val);
    raw_storage_iterator<FwdIt, T>& operator++();
    raw_storage_iterator<FwdIt, T> operator++(int);
    };

The class describes an output iterator that constructs objects of type T in the sequence it generates. An object of class raw_storage_iterator<FwdIt, T> accesses storage through a forward iterator object, of class FwdIt, that you specify when you construct the object. For an object it of class FwdIt, the expression &*it must designate unconstructed storage for the next object (of type T) in the generated sequence.