diff --git a/ChangeLog b/ChangeLog index 5fb272d8..479f93c1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2009-02-12 Tatsuhiro Tsujikawa + + Added operator T* + * src/array_fun.h + * test/array_funTest.cc + 2009-02-12 Tatsuhiro Tsujikawa Use dynamically allocated char array to detect memory access diff --git a/src/array_fun.h b/src/array_fun.h index 0c2327f4..157456fb 100644 --- a/src/array_fun.h +++ b/src/array_fun.h @@ -250,6 +250,16 @@ public: { return _array[index]; } + + operator T*() + { + return _array; + } + + operator const T*() const + { + return _array; + } }; } // namespace aria2 diff --git a/test/array_funTest.cc b/test/array_funTest.cc index 19cf2bfc..6e474fcc 100644 --- a/test/array_funTest.cc +++ b/test/array_funTest.cc @@ -92,6 +92,10 @@ static void arrayPtrConst(const array_ptr& ax) CPPUNIT_ASSERT_EQUAL(99, ax[2].m); } +static void arrayPtrCast(struct array_funTest::X* x) {} + +static void arrayPtrConstCast(const struct array_funTest::X* x) {} + void array_funTest::testArrayPtr() { array_ptr ax(new struct X[10]); @@ -100,6 +104,9 @@ void array_funTest::testArrayPtr() CPPUNIT_ASSERT_EQUAL(100, ax[3].m); CPPUNIT_ASSERT_EQUAL(99, ax[2].m); arrayPtrConst(ax); + + arrayPtrCast(ax); + arrayPtrConstCast(ax); } } // namespace aria2