I recently got a problem need to integrate C++ 11 code written with lambda expression to old code base which only support C++ 98 compiler. I figured out couple of possible equiv
With Functor:
struct Functor
{
explicit Functor(uint attributes) : attributes(attributes) {}
void operator () (uint index, void * objectAddress) const
{
if ((ObjectInfo(index) & attributes) != 0)
{
fn(index, objectAddress);
}
}
uint attributes;
};
And then call
uint attributes = 0x0030;
// ....
ForEachObject(Functor(attributes));
For each different lambda, you have to write a functor.
You don't have to modify ForEachObject