Hi,
I´m writing a simple expression parser
in boost::spirit that can parse a string like "_1 + _2" or "log(_1)"
and return a function object that does just that.
I used boost::lamda for that and return
it as boost::function object.
Now I want to parse compositions like
"sqrt(_1*_1 + _2*_2)" or "(_1 + _2)*_2" etc. It is
easy to parse this of course but I have to create the corresponding function
incrementally (in a loop or recursively)
and that means I have to keep incremental
lambdas until the whole expression has been created.
I can not store them as boost::function
since they do not work with lambda operator overloading (apart from the
fact that it would be too costly).
I need a lambda type for these intermediate
lambda objects. I guess the auto type specifier would solve this but when
will that be available I wonder?
The typeof seems to provide a solution
though. I was just trying it and it seems to work!
Am I on the right track or am I overlooking
something? If anyone knows a better solution please tell me!
cheers
Arnaldur Gylfason