Changes to attempt to silence bcc64x
[ACE_TAO.git] / ACE / ace / Auto_Functor.inl
blobbe0c38361aa32819a90135b0a8095b7d3e625f69
1 // -*- C++ -*-
2 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
4 template<typename X, typename Functor> ACE_INLINE
5 ACE_Utils::Auto_Functor_Ref<X,Functor>::
6 Auto_Functor_Ref(X * p, Functor f)
7   : p_(p)
8   , f_(f)
12 template<typename X, typename Functor> ACE_INLINE
13 ACE_Utils::Auto_Functor<X,Functor>::Auto_Functor(X * p, Functor f)
14   : p_(p)
15   , f_(f)
19 template<typename X, typename Functor> ACE_INLINE
20 ACE_Utils::Auto_Functor<X,Functor>::Auto_Functor(Auto_Functor & rhs)
21   : p_(rhs.release())
22   , f_(rhs.f_)
26 template<typename X, typename Functor>
27 ACE_INLINE ACE_Utils::Auto_Functor<X,Functor>&
28 ACE_Utils::Auto_Functor<X,Functor>:: operator=(Auto_Functor & rhs)
30   reset(rhs.release());
31   f_ = rhs.f_;
32   return *this;
35 template<typename X, typename Functor> template<typename Y> ACE_INLINE
36 ACE_Utils::Auto_Functor<X,Functor>::Auto_Functor(Auto_Functor<Y,Functor>& rhs)
37   : p_(rhs.release())
38   , f_(rhs.f_)
42 template<typename X, typename Functor> template<typename Y>
43 ACE_INLINE ACE_Utils::Auto_Functor<X,Functor>&
44 ACE_Utils::Auto_Functor<X,Functor>::operator=(Auto_Functor<Y,Functor>& rhs)
46   reset(rhs.release());
47   return *this;
50 template<typename X, typename Functor> ACE_INLINE X &
51 ACE_Utils::Auto_Functor<X,Functor>::operator*() const
53   return *p_;
56 template<typename X, typename Functor>
57 ACE_INLINE X *
58 ACE_Utils::Auto_Functor<X,Functor>::operator->() const
60   return p_;
63 template<typename X, typename Functor>
64 ACE_INLINE X *
65 ACE_Utils::Auto_Functor<X,Functor>::get()
67   return p_;
70 template<typename X, typename Functor>
71 ACE_INLINE X *
72 ACE_Utils::Auto_Functor<X,Functor>::release()
74   X * tmp = p_;
75   p_ = 0;
76   return tmp;
79 template<typename X, typename Functor>
80 ACE_INLINE Functor const &
81 ACE_Utils::Auto_Functor<X,Functor>::functor() const
83   return f_;
86 template<typename X, typename Functor> ACE_INLINE
87 ACE_Utils::Auto_Functor<X,Functor>::Auto_Functor(Auto_Functor_Ref<X,Functor> rhs)
88   : p_(rhs.p_)
89   , f_(rhs.f_)
93 template<typename X, typename Functor>
94 ACE_INLINE ACE_Utils::Auto_Functor<X,Functor> &
95 ACE_Utils::Auto_Functor<X,Functor>::operator=(Auto_Functor_Ref<X,Functor> rhs)
97   if(rhs.p_ != p_)
98   {
99     reset(rhs.p_);
100     f_ = rhs.f_;
101   }
102   return *this;
105 template<typename X, typename Functor> template<typename Y> ACE_INLINE
106 ACE_Utils::Auto_Functor<X,Functor>::operator ACE_Utils::Auto_Functor_Ref<Y,Functor>()
108   return ACE_Utils::Auto_Functor_Ref<Y,Functor>(release(), f_);
111 template<typename X, typename Functor> template<typename Y> ACE_INLINE
112 ACE_Utils::Auto_Functor<X,Functor>::operator ACE_Utils::Auto_Functor<Y,Functor>()
114   return ACE_Utils::Auto_Functor<Y,Functor>(release(), f_);
117 ACE_END_VERSIONED_NAMESPACE_DECL