]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/ptr_shrd.h
no real changes, clarified the usage of WX_GL_DOUBLEBUFFER; documented it and other...
[wxWidgets.git] / interface / ptr_shrd.h
index 3554d09fff8345a9dde1a49f8a4b5fcc6dc90541..ab24ca063f3395a500fca13863bdafd1da015788 100644 (file)
@@ -7,34 +7,39 @@
 /////////////////////////////////////////////////////////////////////////////
 
 /**
-    @class wxSharedPtrT
     @wxheader{ptr_shrd.h}
 
-    A smart pointer with non-intrusive reference counting. It is modeled
-    after @b boost::shared_ptr and can be used with STL containers
-    and wxVector() - unlike @b std::auto_ptr
-    and wxScopedPtr().
+    A smart pointer with non-intrusive reference counting. It is modeled after
+    @c boost::shared_ptr<> and can be used with STL containers and wxVector<T> -
+    unlike @c std::auto_ptr<> and wxScopedPtr<T>.
 
     @library{wxbase}
-    @category{FIXME}
+    @category{smartpointers}
 
-    @see wxScopedPtr, wxWeakRef, wxObjectDataPtr
+    @see wxScopedPtr<T>, wxWeakRef<T>, wxObjectDataPtr<T>
 */
+
+template<typename T>
 class wxSharedPtr<T>
 {
 public:
-    //@{
     /**
-        Constructors.
+        Constructor.
+
+        Creates shared pointer from the raw pointer @a ptr and takes ownership
+        of it.
     */
-    wxSharedPtrT(T* ptr = NULL);
-    wxSharedPtrT(const wxSharedPtr<T>& tocopy);
-    //@}
+    wxEXPLICIT wxSharedPtr(T* ptr = NULL);
+
+    /**
+        Copy constructor.
+    */
+    wxSharedPtr(const wxSharedPtr<T>& tocopy);
 
     /**
         Destructor.
     */
-    ~wxSharedPtrT();
+    ~wxSharedPtr();
 
     /**
         Returns pointer to its object or @NULL.
@@ -43,32 +48,44 @@ public:
 
     /**
         Conversion to a boolean expression (in a variant which is not
-        convertable to anything but a boolean expression). If this class
-        contains a valid pointer it will return @e @true, if it contains
-        a @NULL pointer it will return @e @false.
+        convertable to anything but a boolean expression).
+
+        If this class contains a valid pointer it will return @true, if it contains
+        a @NULL pointer it will return @false.
     */
     operator unspecified_bool_type() const;
 
     /**
-        Returns a reference to the object. If the internal pointer is @NULL this
-        method will cause an assert in debug mode.
+        Returns a reference to the object.
+
+        If the internal pointer is @NULL this method will cause an assert in debug mode.
     */
     T operator*() const;
 
     /**
         Returns pointer to its object or @NULL.
     */
-    T* operator-() const;
+    T* operator->() const;
 
     /**
-        Assignment operator. Releases any previously held pointer
-        and creates a reference to @e ptr.
+        Assignment operator.
+
+        Releases any previously held pointer and creates a reference to @a ptr.
+    */
+    wxSharedPtr<T>& operator=(T* ptr);
+
+    /**
+        Assignment operator.
+
+        Releases any previously held pointer and creates a reference to the
+        same object as @a topcopy.
     */
-    wxSharedPtrT& operator operator=(T* ptr);
+    wxSharedPtr<T>& operator=(const wxSharedPtr<T>& tocopy)
 
     /**
-        Reset pointer to @e ptr. If the reference count of the
-        previously owned pointer was 1 it will be deleted.
+        Reset pointer to @a ptr.
+
+        If the reference count of the previously owned pointer was 1 it will be deleted.
     */
     void reset(T* ptr = NULL);