Boost::range::for_each + functor I would like your comments on my code in C++ (C++98 + Boost)  

I have written some code to use the functors with the boost::range::for_each algorithm.
My main problem was to add some "external" parameters to the functor that are not in the vector on which I am using a for_each loop.  

In main() we have: 

std::vector&lt;Person&gt; vec;
vec.reserve(MAX_SIZE);
std::map&lt;std::string, int&gt; result;
FillPersons(vec);
boost::range::for_each(vec,Treatment(&amp;result));


The functor is:

struct Treatment {
    Treatment(std::map&lt;std::string, int&gt; *p_result):result_(p_result){}
    void operator ()(Person &amp;person)
    {
        if (NULL != result_)
        {
            int age = person.getAge();

            if (age &lt; AGE_LOW_LEVEL)
            {
                age += 2;
            }
            else if ((age &gt;= AGE_LOW_LEVEL) &amp;&amp; (age &lt; AGE_HIGH_LEVEL))
            {
                age += 1;    
            }
            else if (age &gt;= AGE_HIGH_LEVEL)
            {
                age -= 5;    
            }
            result_-&gt;insert(std::pair&lt;std::string, int&gt; (person.getName(), age));
        }
    }
    private:
    std::map&lt;std::string, int&gt; *result_;
    Treatment(const std::map&lt;std::string, int&gt; &amp;);
    Treatment&amp; operator=(const Treatment&amp;);
};



Is there any other way to do that better or is it good?  
How would it be using lambdas?  
How would it be in C++11?  


For your information, the Treatment function is naive because my focus was only on adding external parameters to the functors.
First of all I would not use boost::range::for_each . There is already standard algorithm std::for_each in C++.

Secondly I would not use a lambda-expression if the algorithm with the predicate is used more than one time.

And if it is used only one time I would use the range-based for statement. For example

for ( const Person &amp;person : vec )
{
    int age = person.getAge();

    if ( age &lt; AGE_LOW_LEVEL )
    {
        age += 2;
    }
    else if ( age &lt; AGE_HIGH_LEVEL )
    {
        age += 1;   
    }
    else
    {
        age -= 5;   
    }

    result.insert( { person.getName(), age } );
}