]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/ptr_shrd.h
add handling of wxWrapSizer flags (part of ticket 9468)
[wxWidgets.git] / interface / ptr_shrd.h
index ec05ad0677f9782d70270ca0b1af432a21499393..ab24ca063f3395a500fca13863bdafd1da015788 100644 (file)
 /////////////////////////////////////////////////////////////////////////////
 // Name:        ptr_shrd.h
-// Purpose:     documentation for wxSharedPtr<T> class
+// Purpose:     interface of wxSharedPtr<T>
 // Author:      wxWidgets team
 // RCS-ID:      $Id$
 // Licence:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
 /**
-    @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}
-    
-    @seealso
-    wxScopedPtr, wxWeakRef, wxObjectDataPtr
+    @category{smartpointers}
+
+    @see wxScopedPtr<T>, wxWeakRef<T>, wxObjectDataPtr<T>
 */
-class wxSharedPtr<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.
     */
-    T* get();
+    T* get() const;
 
     /**
-        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.
+        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 @true, if it contains
+        a @NULL pointer it will return @false.
     */
-     operator unspecified_bool_type();
+    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*();
+    T operator*() const;
 
     /**
         Returns pointer to its object or @NULL.
     */
-    T* operator-();
+    T* operator->() const;
+
+    /**
+        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 @e 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);
+    void reset(T* ptr = NULL);
 
     /**
         Returns @true if this is the only pointer pointing to its object.
     */
-    bool unique();
+    bool unique() const;
 
     /**
         Returns the number of pointers pointing to its object.
     */
-    long use_count();
+    long use_count() const;
 };
+