I'm trying to learn to use Phoenix, but I haven't found an example of how to do the following simple thing using its inline lazy function creation (it seems that there isn't a simple way to do this): struct Test { int x; void Test() {x = 1;} void inc(int i) { x += i; } }; void main() { vector<Test> v; v.resize(5); // v == {1, 1, 1, 1, 1} for_each(v.begin(), v.end(), arg1.inc(1 + arg1.x) ) // v == {3, 3, 3, 3, 3} } The only ways I found to do this involves function<> that needs an external functor declaration, but this is ugly just like old STL functors, or using member_function_ptr and member_var_ptr templates, but I couldn't get them to work on Borland C++. Anyone knows how to do it, keeping simplicity and elegance? Thanks in advance!