I use the function objects in <functional> all the
time in conjunction with algorithms. However, sometimes, I find that I
really want a curried function. For example:
find_if(b, e, not_equal_to(0));
transform(b, e, plus(1));
copy_if(b, e, o, less(0))
In C++14, you can say
auto plus1 = [](auto x) { return x + 1; };
std::transform(b, e, dest, plus1);
or even
auto plus = [](auto x) { return [x](auto y) { return x + y; }; };
std::transform(b, e, dest, plus(1));
if the parameter absolutely must be substituted in at run time.
Do these not fit your needs for production code? If not, why not?
–Arthur