Merge pull request #2216 from jwillemsen/jwi-cxxversionchecks
[ACE_TAO.git] / TAO / tao / Seq_Var_T.inl
blob55b41b9bfc8ed943e074bc39a94185f74f789b50
1 // -*- C++ -*-
2 #include "ace/OS_Memory.h"
4 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
6 template<typename T>
7 ACE_INLINE
8 TAO_Seq_Var_Base_T<T>::TAO_Seq_Var_Base_T ()
9   : ptr_ (nullptr)
12 template<typename T>
13 ACE_INLINE
14 TAO_Seq_Var_Base_T<T>::TAO_Seq_Var_Base_T (T * p)
15   : ptr_ (p)
18 template<typename T>
19 ACE_INLINE
20 TAO_Seq_Var_Base_T<T>::~TAO_Seq_Var_Base_T ()
22   delete this->ptr_;
25 template<typename T>
26 ACE_INLINE
27 const T *
28 TAO_Seq_Var_Base_T<T>::operator-> () const
30   return this->ptr_;
33 template<typename T>
34 ACE_INLINE
35 T *
36 TAO_Seq_Var_Base_T<T>::operator-> ()
38   return this->ptr_;
41 template<typename T>
42 ACE_INLINE
43 TAO_Seq_Var_Base_T<T>::operator const T & () const
45   return *this->ptr_;
48 template<typename T>
49 ACE_INLINE
50 TAO_Seq_Var_Base_T<T>::operator T & ()
52   return *this->ptr_;
55 template<typename T>
56 ACE_INLINE
57 TAO_Seq_Var_Base_T<T>::operator T & () const
59   return *this->ptr_;
62 template<typename T>
63 ACE_INLINE
64 const T &
65 TAO_Seq_Var_Base_T<T>::in () const
67   return *this->ptr_;
70 template<typename T>
71 ACE_INLINE
72 T &
73 TAO_Seq_Var_Base_T<T>::inout ()
75   return *this->ptr_;
78 template<typename T>
79 ACE_INLINE
80 T *&
81 TAO_Seq_Var_Base_T<T>::out ()
83   delete this->ptr_;
84   this->ptr_ = nullptr;
85   return this->ptr_;
88 template<typename T>
89 ACE_INLINE
90 T *
91 TAO_Seq_Var_Base_T<T>::_retn ()
93   T * tmp = this->ptr_;
94   this->ptr_ = nullptr;
95   return tmp;
98 template<typename T>
99 ACE_INLINE
100 T *
101 TAO_Seq_Var_Base_T<T>::ptr () const
103   return this->ptr_;
106 // ***************************************************************
108 template<typename T>
109 ACE_INLINE
110 TAO_FixedSeq_Var_T<T>::TAO_FixedSeq_Var_T ()
113 template<typename T>
114 ACE_INLINE
115 TAO_FixedSeq_Var_T<T>::TAO_FixedSeq_Var_T (T * p)
116   : TAO_Seq_Var_Base_T<T> (p)
119 template<typename T>
120 TAO_FixedSeq_Var_T<T>::TAO_FixedSeq_Var_T (const TAO_FixedSeq_Var_T<T> & p)
121   : TAO_Seq_Var_Base_T<T> (p)
125 // Fixed-size base types only.
126 template<typename T>
127 ACE_INLINE
128 TAO_FixedSeq_Var_T<T>::TAO_FixedSeq_Var_T (const T & p)
130   ACE_NEW (this->ptr_,
131            T (p));
134 template<typename T>
135 ACE_INLINE
136 TAO_FixedSeq_Var_T<T> &
137 TAO_FixedSeq_Var_T<T>::operator= (T * p)
139   delete this->ptr_;
140   this->ptr_ = p;
141   return *this;
144 template<typename T>
145 ACE_INLINE
146 typename TAO_FixedSeq_Var_T<T>::T_elem
147 TAO_FixedSeq_Var_T<T>::operator[] (CORBA::ULong index)
149   return this->ptr_->operator[] (index);
152 template<typename T>
153 ACE_INLINE
154 typename TAO_FixedSeq_Var_T<T>::T_const_elem
155 TAO_FixedSeq_Var_T<T>::operator[] (CORBA::ULong index) const
157   return this->ptr_->operator[] (index);
160 // ***************************************************************
162 template<typename T>
163 ACE_INLINE
164 TAO_VarSeq_Var_T<T>::TAO_VarSeq_Var_T ()
168 template<typename T>
169 ACE_INLINE
170 TAO_VarSeq_Var_T<T>::TAO_VarSeq_Var_T (T * p)
171   : TAO_Seq_Var_Base_T<T> (p)
175 template<typename T>
176 TAO_VarSeq_Var_T<T>::TAO_VarSeq_Var_T (const TAO_VarSeq_Var_T<T> & p)
177   : TAO_Seq_Var_Base_T<T> (p)
181 template<typename T>
182 ACE_INLINE
183 TAO_VarSeq_Var_T<T> &
184 TAO_VarSeq_Var_T<T>::operator= (T * p)
186   delete this->ptr_;
187   this->ptr_ = p;
188   return *this;
191 // Variable-size types only
192 template<typename T>
193 ACE_INLINE
194 TAO_VarSeq_Var_T<T>::operator T *& ()
196   return this->ptr_;
199 template<typename T>
200 ACE_INLINE
201 typename TAO_VarSeq_Var_T<T>::T_elem
202 TAO_VarSeq_Var_T<T>::operator[] (CORBA::ULong index)
204   return this->ptr_->operator[] (index);
207 template<typename T>
208 ACE_INLINE
209 typename TAO_VarSeq_Var_T<T>::T_const_elem
210 TAO_VarSeq_Var_T<T>::operator[] (CORBA::ULong index) const
212   return this->ptr_->operator[] (index);
216 TAO_END_VERSIONED_NAMESPACE_DECL