1 /* $XConsortium: Owner.h /main/3 1996/08/13 14:30:51 mgreess $ */
2 // Copyright (c) 1994 James Clark
3 // See the file COPYING for copying permission.
6 #define Owner_INCLUDED 1
8 // A pointer that owns the object pointed to.
9 // T must be of class type.
10 // This is coded so that T need not yet have been defined.
13 namespace SP_NAMESPACE {
20 Owner(T *p) : p_(p) { }
22 void operator=(T *p) {
26 operator int() const { return p_ != 0; }
27 T *pointer() const { return p_; }
28 T *operator->() const { return p_; }
29 T &operator*() const { return *p_; }
30 void swap(Owner<T> &x) {
47 Owner(const Owner<T> &) {}
48 void operator=(const Owner<T> &) {}
57 #endif /* not Owner_INCLUDED */
59 #ifdef SP_DEFINE_TEMPLATES