]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/contrib/sptr.h
Mark all FileFdPrivate classes as hidden
[apt.git] / apt-pkg / contrib / sptr.h
index a9347edf9835f6181c6a8ed0d4727098d33a050c..ee4a65d60a618a2b49af3ecd15f6084b6b5f0cbf 100644 (file)
@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
-// $Id: sptr.h,v 1.2 2001/02/20 07:03:17 jgg Exp $
+// $Id: sptr.h,v 1.3 2001/03/11 07:22:19 jgg Exp $
 /* ######################################################################
    
    Trivial non-ref counted 'smart pointer'
 /* ######################################################################
    
    Trivial non-ref counted 'smart pointer'
                                                                        /*}}}*/
 #ifndef SMART_POINTER_H
 #define SMART_POINTER_H
                                                                        /*}}}*/
 #ifndef SMART_POINTER_H
 #define SMART_POINTER_H
+#include <apt-pkg/macros.h>
 
 template <class T>
 
 template <class T>
-class SPtr
+class APT_DEPRECATED_MSG("use std::unique_ptr instead") SPtr
 {
    public:
    T *Ptr;
 {
    public:
    T *Ptr;
@@ -43,24 +44,32 @@ class SPtr
 };
 
 template <class T>
 };
 
 template <class T>
-class SPtrArray
+class APT_DEPRECATED_MSG("use std::unique_ptr instead") SPtrArray
 {
    public:
    T *Ptr;
    
 {
    public:
    T *Ptr;
    
-   inline T &operator *() {return *Ptr;};
+   //inline T &operator *() {return *Ptr;};
    inline operator T *() {return Ptr;};
    inline operator void *() {return Ptr;};
    inline T *UnGuard() {T *Tmp = Ptr; Ptr = 0; return Tmp;};
    inline operator T *() {return Ptr;};
    inline operator void *() {return Ptr;};
    inline T *UnGuard() {T *Tmp = Ptr; Ptr = 0; return Tmp;};
-   inline T &operator [](signed long I) {return Ptr[I];};
+   //inline T &operator [](signed long I) {return Ptr[I];};
    inline void operator =(T *N) {Ptr = N;};
    inline bool operator ==(T *lhs) const {return Ptr == lhs;};
    inline bool operator !=(T *lhs) const {return Ptr != lhs;};
    inline void operator =(T *N) {Ptr = N;};
    inline bool operator ==(T *lhs) const {return Ptr == lhs;};
    inline bool operator !=(T *lhs) const {return Ptr != lhs;};
-   inline T*Get() {return Ptr;};
+   inline T *Get() {return Ptr;};
    
    inline SPtrArray(T *Ptr) : Ptr(Ptr) {};
    inline SPtrArray() : Ptr(0) {};
    
    inline SPtrArray(T *Ptr) : Ptr(Ptr) {};
    inline SPtrArray() : Ptr(0) {};
-   inline ~SPtrArray() {delete []Ptr;};
+#if __GNUC__ >= 4
+       #pragma GCC diagnostic push
+       #pragma GCC diagnostic ignored "-Wunsafe-loop-optimizations"
+       // gcc warns about this, but we can do nothing hereā€¦
+#endif
+   inline ~SPtrArray() {delete [] Ptr;};
+#if __GNUC__ >= 4
+       #pragma GCC diagnostic pop
+#endif
 };
 
 #endif
 };
 
 #endif