diff options
| author | Max Horn | 2008-03-29 00:08:56 +0000 | 
|---|---|---|
| committer | Max Horn | 2008-03-29 00:08:56 +0000 | 
| commit | f93c076a7b9d59afa4c80ab4241af7fbf252a0ab (patch) | |
| tree | ddcbf12c1e2b33c4e402ac70172e970d83af4d2e | |
| parent | 1092b87cd7f4b73d896db3aca031e50a84a43565 (diff) | |
| download | scummvm-rg350-f93c076a7b9d59afa4c80ab4241af7fbf252a0ab.tar.gz scummvm-rg350-f93c076a7b9d59afa4c80ab4241af7fbf252a0ab.tar.bz2 scummvm-rg350-f93c076a7b9d59afa4c80ab4241af7fbf252a0ab.zip | |
Document SharedPtr bool conversion operator; added test cases for it; also added two test cases for the comparision operators, which currently fail
svn-id: r31299
| -rw-r--r-- | common/ptr.h | 6 | ||||
| -rw-r--r-- | test/common/ptr.h | 16 | 
2 files changed, 21 insertions, 1 deletions
| diff --git a/common/ptr.h b/common/ptr.h index cad23a18ff..1121ffd665 100644 --- a/common/ptr.h +++ b/common/ptr.h @@ -62,7 +62,7 @@ namespace Common {   * The class has implicit upcast support, so if you got a class B derived   * from class A, you can assign a pointer to B without any problems to a   * SharedPtr object with template parameter A. The very same applies to  - * assigment of a SharedPtr<B> object to a SharedPtr<A> object. + * assignment of a SharedPtr<B> object to a SharedPtr<A> object.   *   * There are also operators != and == to compare two SharedPtr objects   * with compatible pointers. @@ -116,6 +116,10 @@ public:  	 */  	Pointer get() const { return _pointer; } +	/** +	 * Implicit conversion operator to bool for convenience, to make +	 * checks like "if (sharePtr) ..." possible. +	 */  	operator bool() const { return _pointer != 0; }  	/** diff --git a/test/common/ptr.h b/test/common/ptr.h index b6f2e950ca..7102a819cf 100644 --- a/test/common/ptr.h +++ b/test/common/ptr.h @@ -33,4 +33,20 @@ class PtrTestSuite : public CxxTest::TestSuite  		TS_ASSERT_EQUALS(*p1, 0);  		TS_ASSERT(p1.unique());  	} + +	void test_compare() { +		Common::SharedPtr<int> p1(new int(1)); +		Common::SharedPtr<int> p2; +		 +		TS_ASSERT(p1); +		TS_ASSERT(!p2); + +		TS_ASSERT(p1 != 0); +		TS_ASSERT(p2 == 0); + +		// Note: The following two currently do *not* work, contrary to +		// what the Doxygen comments of SharedPtr claim. +		TS_ASSERT(p1 != (int *)0); +		TS_ASSERT(p2 == (int *)0); +	}  }; | 
