* Reference-counted pointer template. */
/*
- * GiNaC Copyright (C) 1999-2008 Johannes Gutenberg University Mainz, Germany
+ * GiNaC Copyright (C) 1999-2010 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
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-#ifndef __GINAC_PTR_H__
-#define __GINAC_PTR_H__
+#ifndef GINAC_PTR_H
+#define GINAC_PTR_H
+
+#include "assertion.h"
#include <cstddef> // for size_t
#include <functional>
#include <iosfwd>
-#include "assertion.h"
-
namespace GiNaC {
-
/** Base class for reference-counted objects. */
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
};
} // namespace std
-#endif // ndef __GINAC_PTR_H__
+#endif // ndef GINAC_PTR_H