#include <algorithm> #include <iterator> #include <memory> #include "cppunit/cppunit_proxy.h" #if !defined (STLPORT) || defined(_STLP_USE_NAMESPACES) using namespace std; #endif class X { public: X(int i_ = 0) : i(i_) {} ~X() {} operator int() const { return i; } private: int i; }; // // TestCase class // class RawriterTest : public CPPUNIT_NS::TestCase { CPPUNIT_TEST_SUITE(RawriterTest); CPPUNIT_TEST(rawiter1); CPPUNIT_TEST_SUITE_END(); protected: void rawiter1(); }; CPPUNIT_TEST_SUITE_REGISTRATION(RawriterTest); // // tests implementation // void RawriterTest::rawiter1() { allocator<X> a; typedef X* x_pointer; x_pointer save_p, p; p = a.allocate(5); save_p=p; raw_storage_iterator<X*, X> r(p); int i; for(i = 0; i < 5; i++) *r++ = X(i); CPPUNIT_ASSERT(*p++ == 0); CPPUNIT_ASSERT(*p++ == 1); CPPUNIT_ASSERT(*p++ == 2); CPPUNIT_ASSERT(*p++ == 3); CPPUNIT_ASSERT(*p++ == 4); //#if defined (STLPORT) || defined (__GNUC__) a.deallocate(save_p, 5); /* #else a.deallocate(save_p); #endif */ }