Go to the documentation of this file.
33 #define UNARY_FUNCTION(ReturnType, Type1, Func) \
38 FieldField<Field, ReturnType>& res, \
39 const FieldField<Field, Type1>& f \
43 tmp<FieldField<Field, ReturnType> > Func \
45 const FieldField<Field, Type1>& f \
49 tmp<FieldField<Field, ReturnType> > Func \
51 const tmp<FieldField<Field, Type1> >& tf \
57 #define UNARY_OPERATOR(ReturnType, Type1, Op, OpFunc) \
62 FieldField<Field, ReturnType>& res, \
63 const FieldField<Field, Type1>& f \
67 tmp<FieldField<Field, ReturnType> > operator Op \
69 const FieldField<Field, Type1>& f \
73 tmp<FieldField<Field, ReturnType> > operator Op \
75 const tmp<FieldField<Field, Type1> >& tf \
81 #define BINARY_FUNCTION(ReturnType, Type1, Type2, Func) \
86 FieldField<Field, ReturnType>& f, \
87 const FieldField<Field, Type1>& f1, \
88 const FieldField<Field, Type2>& f2 \
92 tmp<FieldField<Field, ReturnType> > func \
94 const FieldField<Field, Type1>& f1, \
95 const FieldField<Field, Type2>& f2 \
99 tmp<FieldField<Field, ReturnType> > func \
101 const FieldField<Field, Type1>& f1, \
102 const tmp<FieldField<Field, Type2> >& tf2 \
106 tmp<FieldField<Field, ReturnType> > func \
108 const tmp<FieldField<Field, Type1> >& tf1, \
109 const FieldField<Field, Type2>& f2 \
113 tmp<FieldField<Field, ReturnType> > func \
115 const tmp<FieldField<Field, Type1> >& tf1, \
116 const tmp<FieldField<Field, Type2> >& tf2 \
122 #define BINARY_TYPE_FUNCTION_SF(ReturnType, Type1, Type2, Func) \
127 FieldField<Field, ReturnType>& f, \
129 const FieldField<Field, Type2>& f2 \
133 tmp<FieldField<Field, ReturnType> > func \
136 const FieldField<Field, Type1>& f2 \
140 tmp<FieldField<Field, ReturnType> > func \
143 const tmp<FieldField<Field, Type1> >& tf2 \
147 #define BINARY_TYPE_FUNCTION_FS(ReturnType, Type1, Type2, Func) \
152 FieldField<Field, ReturnType>& f, \
153 const FieldField<Field, Type1>& f1, \
158 tmp<FieldField<Field, ReturnType> > func \
160 const FieldField<Field, Type1>& f1, \
165 tmp<FieldField<Field, ReturnType> > func \
167 const tmp<FieldField<Field, Type1> >& tf1, \
172 #define BINARY_TYPE_FUNCTION(ReturnType, Type1, Type2, Func) \
173 BINARY_TYPE_FUNCTION_SF(ReturnType, Type1, Type2, Func) \
174 BINARY_TYPE_FUNCTION_FS(ReturnType, Type1, Type2, Func)
179 #define BINARY_OPERATOR(ReturnType, Type1, Type2, Op, OpFunc) \
184 FieldField<Field, ReturnType>& f, \
185 const FieldField<Field, Type1>& f1, \
186 const FieldField<Field, Type2>& f2 \
190 tmp<FieldField<Field, ReturnType> > operator Op \
192 const FieldField<Field, Type1>& f1, \
193 const FieldField<Field, Type2>& f2 \
197 tmp<FieldField<Field, ReturnType> > operator Op \
199 const FieldField<Field, Type1>& f1, \
200 const tmp<FieldField<Field, Type2> >& tf2 \
204 tmp<FieldField<Field, ReturnType> > operator Op \
206 const tmp<FieldField<Field, Type1> >& tf1, \
207 const FieldField<Field, Type2>& f2 \
211 tmp<FieldField<Field, ReturnType> > operator Op \
213 const tmp<FieldField<Field, Type1> >& tf1, \
214 const tmp<FieldField<Field, Type2> >& tf2 \
220 #define BINARY_TYPE_OPERATOR_SF(ReturnType, Type1, Type2, Op, OpFunc) \
225 FieldField<Field, ReturnType>& f, \
227 const FieldField<Field, Type2>& f2 \
231 tmp<FieldField<Field, ReturnType> > operator Op \
234 const FieldField<Field, Type2>& f2 \
238 tmp<FieldField<Field, ReturnType> > operator Op \
241 const tmp<FieldField<Field, Type2> >& tf2 \
245 #define BINARY_TYPE_OPERATOR_FS(ReturnType, Type1, Type2, Op, OpFunc) \
250 FieldField<Field, ReturnType>& f, \
251 const FieldField<Field, Type1>& f1, \
256 tmp<FieldField<Field, ReturnType> > operator Op \
258 const FieldField<Field, Type1>& f1, \
263 tmp<FieldField<Field, ReturnType> > operator Op \
265 const tmp<FieldField<Field, Type1> >& tf1, \
270 #define BINARY_TYPE_OPERATOR(ReturnType, Type1, Type2, Op, OpFunc) \
271 BINARY_TYPE_OPERATOR_SF(ReturnType, Type1, Type2, Op, OpFunc) \
272 BINARY_TYPE_OPERATOR_FS(ReturnType, Type1, Type2, Op, OpFunc)