#include <algorithm>
-#include <functional>
#include <numeric>
#include <iterator>
#include <sstream>
double cost_func::operator()(double amount) const
{
- using std::placeholders::_1;
- using std::placeholders::_2;
return std::accumulate(++factors.begin(), factors.end(), factors.front(),
- std::bind(std::plus<double>(),
- std::bind(std::multiplies<double>(),
- amount, _1), _2));
+ [&amount](double a, double b) {
+ return amount * a + b;
+ });
}
std::string cost_func::to_string()