
Hi, Sebastia! Please use boost::reference_wrapper to disable copying... mpl::for_each< mpl::vector<bool, double>, worker_t& >(boost::ref(workit)); Hope that helps. Ovanes On Tue, May 20, 2008 at 8:35 AM, Sebastian Weber < sebastian.weber@physik.tu-darmstadt.de> wrote:
Hi there!
I'm currently struggling with mpl::for_each: It copies my function object no matter what I do. Here is some dummy code:
worker_t workit; // the worker object which recieves the different types and has an internal state
mpl::for_each< mpl::vector<bool, double>, worker_t& >(workit);
Now, the workit object becomes copied which is clear from the sources. However, I explicitly requested it not to be copied by the hint of giving the reference worker_t& as a template parameter.
Maybe this behaviour is wanted, but I do not see the reason. In the fusion-world this is the way to go if one wants to prevent copying of function objects.
Is this now a bug or a feature and how can I fix it (quick).
Greetings,
Sebastian