Re: [Boost-users] Equation idea (follow-up)
std::cout << a(_y is 5, _z is 10) << std::endl;
I do think the idea of assigning inputs at the call site is important which is what you've done. It would be nice to use the named parameter library here if possible to get rid of the leading underscores.
I've played around a little with the parameter library, but it requires you to pre-register variable names (I think???). With this system, you can either use the underscore-letter name, or just wrap the name in the VAR() macro (eg: Equation e = VAR(foo) + VAR(bar); cout << e(VAR(foo) is 9, VAR(bar) is 10). )
class Equation Should be templated
Why?
I don't know what this offers over boost bind and function. I use these to do a lot of this type of stuff. As long as the number of parameters are low, its easy to understand and you get some currying for free.
The idea is that the target users for this toolkit aren't power-users. Quite the contrary: I work with a lot of scientists, and they have rudimentary C/C++ skills. This system would let them write equations without having to learn template syntax or, for that matter, much about function declarations.
// I'd really like to do double v = f(x=x,y=y);
I think the system I've proposed will do what you're asking: Equation f = _x + _y; double v = f(_x is 5, _y is 8) --Steve
participants (1)
-
Stephen Gross