]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/ptr_shrd.h
several g++ 4 warning fixes
[wxWidgets.git] / interface / ptr_shrd.h
index d527784cffa58d1234d5b56af45cd1af006dbbd0..e6fc1dbf03c8f889b355408e9c8a4d837c073f85 100644 (file)
@@ -1,36 +1,37 @@
 /////////////////////////////////////////////////////////////////////////////
 // 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}
+    @category{smartpointers}
 
-    @seealso
-    wxScopedPtr, wxWeakRef, wxObjectDataPtr
+    @see wxScopedPtr<T>, wxWeakRef<T>, wxObjectDataPtr
 */
+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);
-    //@}
+    wxSharedPtr(T* ptr = NULL);
+
+    /// Copy constructor.
+    wxSharedPtr(const wxSharedPtr<T>& tocopy);
 
     /**
         Destructor.
@@ -40,7 +41,7 @@ public:
     /**
         Returns pointer to its object or @NULL.
     */
-    T* get();
+    T* get() const;
 
     /**
         Conversion to a boolean expression (in a variant which is not
@@ -48,38 +49,39 @@ public:
         contains a valid pointer it will return @e @true, if it contains
         a @NULL pointer it will return @e @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 @e ptr.
     */
-    wxSharedPtrT& operator operator=(T * ptr);
+    wxSharedPtrT& operator operator=(T* ptr);
 
     /**
         Reset pointer to @e 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;
 };
+