Boost logo

Boost Users :

From: Edson Tadeu (e.tadeu_at_[hidden])
Date: 2005-07-18 14:31:04

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 == {1, 1, 1, 1, 1}

  for_each(v.begin(), v.end(), + 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!

Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at