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