102 |
return os; |
return os; |
103 |
} |
} |
104 |
|
|
105 |
const TypeExpression operator()(const TypeExpression& a, const TypeExpression& b) const |
const TypeExpression& operator()(const TypeExpression& a, const TypeExpression& b) const |
106 |
{ |
{ |
107 |
return theBinaryOperator().apply(a,b); |
return theBinaryOperator().apply(a,b); |
108 |
} |
} |
132 |
return os; |
return os; |
133 |
} |
} |
134 |
|
|
135 |
const TypeExpression apply(const TypeExpression& a, const TypeExpression& b) const |
const TypeExpression& apply(const TypeExpression& a, const TypeExpression& b) const |
136 |
{ |
{ |
137 |
return a+b; |
return a+b; |
138 |
} |
} |
162 |
return os; |
return os; |
163 |
} |
} |
164 |
|
|
165 |
const TypeExpression apply(const TypeExpression& a, const TypeExpression& b) const |
const TypeExpression& apply(const TypeExpression& a, const TypeExpression& b) const |
166 |
{ |
{ |
167 |
return a-b; |
return a-b; |
168 |
} |
} |
192 |
return os; |
return os; |
193 |
} |
} |
194 |
|
|
195 |
const TypeExpression apply(const TypeExpression& a, const TypeExpression& b) const |
const TypeExpression& apply(const TypeExpression& a, const TypeExpression& b) const |
196 |
{ |
{ |
197 |
return a*b; |
return a*b; |
198 |
} |
} |
222 |
return os; |
return os; |
223 |
} |
} |
224 |
|
|
225 |
const TypeExpression apply(const TypeExpression& a, const TypeExpression& b) const |
const TypeExpression& apply(const TypeExpression& a, const TypeExpression& b) const |
226 |
{ |
{ |
227 |
return a/b; |
return a/b; |
228 |
} |
} |
252 |
return os; |
return os; |
253 |
} |
} |
254 |
|
|
255 |
const TypeExpression apply(const TypeExpression& a, const TypeExpression& b) const |
const TypeExpression& apply(const TypeExpression& a, const TypeExpression& b) const |
256 |
{ |
{ |
257 |
return std::pow(a,b); |
return std::pow(a,b); |
258 |
} |
} |
301 |
return os; |
return os; |
302 |
} |
} |
303 |
|
|
304 |
const TypeExpression operator()(const TypeExpression& a) const |
const TypeExpression& operator()(const TypeExpression& a) const |
305 |
{ |
{ |
306 |
return theUnaryOperator().apply(a,b); |
return theUnaryOperator().apply(a,b); |
307 |
} |
} |
332 |
return os; |
return os; |
333 |
} |
} |
334 |
|
|
335 |
const TypeExpression apply(const TypeExpression& a) const |
const TypeExpression& apply(const TypeExpression& a) const |
336 |
{ |
{ |
337 |
return -a; |
return -a; |
338 |
} |
} |
394 |
return functionName<F>(os); |
return functionName<F>(os); |
395 |
} |
} |
396 |
|
|
397 |
const TypeExpression apply(const TypeExpression& a) const |
const TypeExpression& apply(const TypeExpression& a) const |
398 |
{ |
{ |
399 |
return F(a); |
return F(a); |
400 |
} |
} |