On Thu, Jul 12, 2012 at 6:46 PM, Joel de Guzman <joel@boost-consulting.com> wrote:

You did not evaluate it. Try adding a () at the end:

  phx::for_each(phx::ref(tokens),
    phx::lambda
    [
      phx::push_back(phx::ref(string_tokens), phx::arg_names::arg1)
    ]
  )();

Adding the evaluation worked.  I get the expected results now. 

I now have the simplest pure phoenix method to parse a boost tokenizer into a vector of strings.  Is there a helper method that can be written to automatically append the phx::lambda in this case.  This would give the following results.

phx::for_each(phx::ref(tokens), phx::push_back(phx::ref(string_tokens), phx::arg_names::arg1))();

I understand the advantage of the lambda section.  It allows added variables to be created and more complicated requirements to be accomplished.  I just want to try and remove the extra syntax from my users view if it isn't necessary (other than to make it work :) ).  I would think it's possible if the argument from one method is being used directly in the other method without creating any additional variables.

Like I said, I'm not sure if this is possible but would like to try if it is.

Ryan