1*0Sstevel@tonic-gate // Copyright (c) 1994 James Clark
2*0Sstevel@tonic-gate // See the file COPYING for copying permission.
3*0Sstevel@tonic-gate #pragma ident	"%Z%%M%	%I%	%E% SMI"
4*0Sstevel@tonic-gate 
5*0Sstevel@tonic-gate #ifndef CopyOwner_DEF_INCLUDED
6*0Sstevel@tonic-gate #define CopyOwner_DEF_INCLUDED 1
7*0Sstevel@tonic-gate 
8*0Sstevel@tonic-gate #ifdef SP_NAMESPACE
9*0Sstevel@tonic-gate namespace SP_NAMESPACE {
10*0Sstevel@tonic-gate #endif
11*0Sstevel@tonic-gate 
12*0Sstevel@tonic-gate template<class T>
CopyOwner(const CopyOwner<T> & o)13*0Sstevel@tonic-gate CopyOwner<T>::CopyOwner(const CopyOwner<T> &o)
14*0Sstevel@tonic-gate : Owner<T>(o.pointer() ? o.pointer()->copy() : 0)
15*0Sstevel@tonic-gate {
16*0Sstevel@tonic-gate }
17*0Sstevel@tonic-gate 
18*0Sstevel@tonic-gate template<class T>
operator =(const CopyOwner<T> & o)19*0Sstevel@tonic-gate void CopyOwner<T>::operator=(const CopyOwner<T> &o)
20*0Sstevel@tonic-gate {
21*0Sstevel@tonic-gate   Owner<T>::operator=(o.pointer() ? o.pointer()->copy() : 0);
22*0Sstevel@tonic-gate }
23*0Sstevel@tonic-gate 
24*0Sstevel@tonic-gate #ifdef SP_NAMESPACE
25*0Sstevel@tonic-gate }
26*0Sstevel@tonic-gate #endif
27*0Sstevel@tonic-gate 
28*0Sstevel@tonic-gate #endif /* not CopyOwner_DEF_INCLUDED */
29