54 ptrs_[i] = (a[i]).clone().ptr();
60 template<
class CloneArg>
67 ptrs_[i] = (a[i]).clone(cloneArg).ptr();
88 ptrs_[i] = a.ptrs_[i];
97 ptrs_[i] = (a[i]).clone().ptr();
118 ptrs_[i++] = (iter()).clone().ptr();
147 <<
"bad set size " << newSize
151 label oldSize = size();
157 else if (newSize < oldSize)
160 for (i=newSize; i<oldSize; i++)
168 ptrs_.setSize(newSize);
172 ptrs_.setSize(newSize);
175 for (i=oldSize; i<newSize; i++)
202 ptrs_.transfer(a.ptrs_);
209 if (oldToNew.
size() != size())
211 FatalErrorIn(
"PtrList<T>::reorder(const UList<label>&)")
212 <<
"Size of map (" << oldToNew.
size()
213 <<
") not equal to list size (" << size()
217 List<T*> newPtrs_(ptrs_.size(),
reinterpret_cast<T*
>(0));
221 label newI = oldToNew[i];
223 if (newI < 0 || newI >= size())
225 FatalErrorIn(
"PtrList<T>::reorder(const UList<label>&)")
226 <<
"Illegal index " << newI <<
nl
227 <<
"Valid indices are 0.." << size()-1
233 FatalErrorIn(
"PtrList<T>::reorder(const UList<label>&)")
234 <<
"reorder map is not unique; element " << newI
237 newPtrs_[newI] = ptrs_[i];
244 FatalErrorIn(
"PtrList<T>::reorder(const UList<label>&)")
245 <<
"Element " << i <<
" not set after reordering." <<
nl
250 ptrs_.transfer(newPtrs_);
261 FatalErrorIn(
"PtrList<T>::operator=(const PtrList<T>&)")
262 <<
"attempted assignment to self"
272 ptrs_[i] = (a[i]).clone().ptr();
275 else if (a.
size() == size())
285 <<
"bad size: " << a.
size()