38 template<
template<
class>
class Field,
class Type1,
class Type2>
41 const FieldField<Field, Type1>&
f1,
42 const FieldField<Field, Type2>& f2,
46 if (
f1.size() != f2.size())
49 <<
" FieldField<" << pTraits<Type1>::typeName
50 <<
"> f1(" <<
f1.size() <<
')'
51 <<
" and FieldField<" << pTraits<Type2>::typeName
52 <<
"> f2(" << f2.size() <<
')'
53 <<
endl <<
" for operation " << op
58 template<
template<
class>
class Field,
class Type1,
class Type2,
class Type3>
61 const FieldField<Field, Type1>&
f1,
62 const FieldField<Field, Type2>& f2,
63 const FieldField<Field, Type3>& f3,
67 if (
f1.size() != f2.size() ||
f1.size() != f3.size())
70 <<
" FieldField<" << pTraits<Type1>::typeName
71 <<
"> f1(" <<
f1.size() <<
')'
72 <<
", FieldField<" <<pTraits<Type2>::typeName
73 <<
"> f2(" << f2.size() <<
')'
74 <<
" and FieldField<"<<pTraits<Type3>::typeName
75 <<
"> f3("<<f3.size() <<
')'
76 <<
endl <<
" for operation " << op
83 template<
template<
class>
class Field,
class Type1,
class Type2>
92 template<
template<
class>
class Field,
class Type1,
class Type2,
class Type3>
107 template<
template<
class>
class Field,
class Type>
114 template<
template<
class>
class Field,
class Type>
121 template<
template<
class>
class Field,
class Type>
122 FieldField<Field, Type>::FieldField
125 const FieldField<Field, Type>&
ff
128 PtrList<Field<Type> >(
ff.size())
137 template<
template<
class>
class Field,
class Type>
138 FieldField<Field, Type>::FieldField(
const FieldField<Field, Type>&
f)
141 PtrList<Field<Type> >(
f)
145 template<
template<
class>
class Field,
class Type>
146 FieldField<Field, Type>::FieldField(FieldField<Field, Type>&
f,
bool reUse)
149 PtrList<Field<Type> >(
f, reUse)
153 template<
template<
class>
class Field,
class Type>
154 FieldField<Field, Type>::FieldField(
const PtrList<Field<Type> >& tl)
156 PtrList<Field<Type> >(tl)
161 #ifndef NoConstructFromTmp
162 template<
template<
class>
class Field,
class Type>
163 FieldField<Field, Type>::FieldField(
const tmp<FieldField<Field, Type> >&
tf)
165 PtrList<Field<Type> >
167 const_cast<FieldField<Field, Type>&>(
tf()),
171 const_cast<FieldField<Field, Type>&
>(
tf()).resetRefCount();
176 template<
template<
class>
class Field,
class Type>
177 FieldField<Field, Type>::FieldField(Istream& is)
179 PtrList<Field<Type> >(is)
183 template<
template<
class>
class Field,
class Type>
190 template<
template<
class>
class Field,
class Type>
191 template<
class Type2>
213 template<
template<
class>
class Field,
class Type>
218 this->operator[](i).negate();
223 template<
template<
class>
class Field,
class Type>
233 NewCalculatedType(*
this)
242 template<
template<
class>
class Field,
class Type>
251 this->operator[](i).replace(d,
sf[i]);
256 template<
template<
class>
class Field,
class Type>
257 void FieldField<Field, Type>::replace
265 this->operator[](i).replace(d,
s);
270 template<
template<
class>
class Field,
class Type>
285 template<
template<
class>
class Field,
class Type>
291 <<
"attempted assignment to self"
297 this->operator[](i) =
f[i];
302 template<
template<
class>
class Field,
class Type>
303 void FieldField<Field, Type>::operator=(
const tmp<FieldField>&
tf)
308 <<
"attempted assignment to self"
313 FieldField* fieldPtr =
tf.ptr();
314 PtrList<Field<Type> >::transfer(*fieldPtr);
319 template<
template<
class>
class Field,
class Type>
320 void FieldField<Field, Type>::operator=(
const Type& t)
324 this->operator[](i) = t;
329 #define COMPUTED_ASSIGNMENT(TYPE, op) \
331 template<template<class> class Field, class Type> \
332 void FieldField<Field, Type>::operator op(const FieldField<Field, TYPE>& f) \
336 this->operator[](i) op f[i]; \
340 template<template<class> class Field, class Type> \
341 void FieldField<Field, Type>::operator op \
343 const tmp<FieldField<Field, TYPE> >& tf \
350 template<template<class> class Field, class Type> \
351 void FieldField<Field, Type>::operator op(const TYPE& t) \
355 this->operator[](i) op t; \
364 #undef COMPUTED_ASSIGNMENT
369 template<
template<
class>
class Field,
class Type>
372 os << static_cast<const PtrList<Field<Type> >&>(
f);
377 template<
template<
class>
class Field,
class Type>