//: C04:RawStorageIterator.cpp // From Thinking in C++, 2nd Edition // Available at http://www.BruceEckel.com // (c) Bruce Eckel 2000 // Copyright notice in Copyright.txt // Demonstrate the raw_storage_iterator #include "Noisy.h" #include #include #include using namespace std; int main() { const int quantity = 10; // Create raw storage and cast to desired type: Noisy* np = (Noisy*)new char[quantity * sizeof(Noisy)]; raw_storage_iterator rsi(np); for(int i = 0; i < quantity; i++) *rsi++ = Noisy(); // Place objects in storage cout << endl; copy(np, np + quantity, ostream_iterator(cout, " ")); cout << endl; // Explicit destructor call for cleanup: for(int j = 0; j < quantity; j++) (&np[j])->~Noisy(); // Release raw storage: delete (char*)np; } ///:~