1#include <algorithm> 2#include <iterator> 3#include <memory> 4 5#include "cppunit/cppunit_proxy.h" 6 7#if !defined (STLPORT) || defined(_STLP_USE_NAMESPACES) 8using namespace std; 9#endif 10 11class X 12{ 13 public: 14 X(int i_ = 0) : i(i_) {} 15 ~X() {} 16 operator int() const { return i; } 17 18 private: 19 int i; 20}; 21 22 23// 24// TestCase class 25// 26class RawriterTest : public CPPUNIT_NS::TestCase 27{ 28 CPPUNIT_TEST_SUITE(RawriterTest); 29 CPPUNIT_TEST(rawiter1); 30 CPPUNIT_TEST_SUITE_END(); 31 32protected: 33 void rawiter1(); 34}; 35 36CPPUNIT_TEST_SUITE_REGISTRATION(RawriterTest); 37 38// 39// tests implementation 40// 41void RawriterTest::rawiter1() 42{ 43 allocator<X> a; 44 typedef X* x_pointer; 45 x_pointer save_p, p; 46 p = a.allocate(5); 47 save_p=p; 48 raw_storage_iterator<X*, X> r(p); 49 int i; 50 for(i = 0; i < 5; i++) 51 *r++ = X(i); 52 53 CPPUNIT_ASSERT(*p++ == 0); 54 CPPUNIT_ASSERT(*p++ == 1); 55 CPPUNIT_ASSERT(*p++ == 2); 56 CPPUNIT_ASSERT(*p++ == 3); 57 CPPUNIT_ASSERT(*p++ == 4); 58 59//#if defined (STLPORT) || defined (__GNUC__) 60 a.deallocate(save_p, 5); 61/* 62#else 63 a.deallocate(save_p); 64#endif 65*/ 66} 67