Let x
be when<_, A0>()(e, s, d)
and X
be the type of x
.
More...
#include <call.hpp>
Let x
be when<_, A0>()(e, s, d)
and X
be the type of x
.
Let y
be when<_, A1>()(e, s, d)
and Y
be the type of y
. If Fun
is a binary PolymorphicFunction object that accepts x
and y
, then type
is a typedef for boost::result_of<Fun(X, Y)>::type
. Otherwise, it is a typedef for boost::result_of<Fun(X, Y, Data)>::type
. Either call the PolymorphicFunctionObject with 2 arguments: the result of applying the A0
transform, and the result of applying the A1
transform; or invoke the PrimitiveTransform with 3 arguments: the result of applying the A0
transform, the result of applying the A1
transform, and the data.
Let x
be when<_, A0>()(e, s, d)
. Let y
be when<_, A1>()(e, s, d)
. If Fun
is a binary PolymorphicFunction object that accepts x
and y
, return Fun()(x, y)
. Otherwise, return Fun()(x, y, d)
.
e | The current expression |
s | The current state |
d | An arbitrary data |