]> www.ginac.de Git - ginac.git/blobdiff - ginac/ptr.h
ptr.h: use unsigned int to store reference counts (in order to save memory).
[ginac.git] / ginac / ptr.h
index 4c4ea71d6bbfde7d70a1f0e563f29d9ef3c1d164..db7f95824864702962d5aa41723ecc8f8a7f01b1 100644 (file)
@@ -3,7 +3,7 @@
  *  Reference-counted pointer template. */
 
 /*
- *  GiNaC Copyright (C) 1999-2004 Johannes Gutenberg University Mainz, Germany
+ *  GiNaC Copyright (C) 1999-2008 Johannes Gutenberg University Mainz, Germany
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -17,7 +17,7 @@
  *
  *  You should have received a copy of the GNU General Public License
  *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
 #ifndef __GINAC_PTR_H__
@@ -37,13 +37,13 @@ class refcounted {
 public:
        refcounted() throw() : refcount(0) {}
 
-       size_t add_reference() throw() { return ++refcount; }
-       size_t remove_reference() throw() { return --refcount; }
-       size_t get_refcount() const throw() { return refcount; }
-       void set_refcount(size_t r) throw() { refcount = r; }
+       unsigned int add_reference() throw() { return ++refcount; }
+       unsigned int remove_reference() throw() { return --refcount; }
+       unsigned int get_refcount() const throw() { return refcount; }
+       void set_refcount(unsigned int r) throw() { refcount = r; }
 
 private:
-       size_t refcount; ///< reference counter
+       unsigned int refcount; ///< reference counter
 };
 
 
@@ -142,6 +142,7 @@ public:
        inline friend std::ostream & operator<<(std::ostream & os, const ptr<T> & rhs)
        {
                os << rhs.p;
+               return os;
        }
 
 private: