Browse Source

2009-02-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>

	Added operator T*
	* src/array_fun.h
	* test/array_funTest.cc
Tatsuhiro Tsujikawa 16 years ago
parent
commit
1c46a26ae6
3 changed files with 23 additions and 0 deletions
  1. 6 0
      ChangeLog
  2. 10 0
      src/array_fun.h
  3. 7 0
      test/array_funTest.cc

+ 6 - 0
ChangeLog

@@ -1,3 +1,9 @@
+2009-02-12  Tatsuhiro Tsujikawa  <t-tujikawa@users.sourceforge.net>
+
+	Added operator T*
+	* src/array_fun.h
+	* test/array_funTest.cc
+
 2009-02-12  Tatsuhiro Tsujikawa  <t-tujikawa@users.sourceforge.net>
 
 	Use dynamically allocated char array to detect memory access

+ 10 - 0
src/array_fun.h

@@ -250,6 +250,16 @@ public:
   {
     return _array[index];
   }
+
+  operator T*()
+  {
+    return _array;
+  }
+
+  operator const T*() const
+  {
+    return _array;
+  }
 };
 
 } // namespace aria2

+ 7 - 0
test/array_funTest.cc

@@ -92,6 +92,10 @@ static void arrayPtrConst(const array_ptr<struct array_funTest::X>& 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<struct X> 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