のパラメータをキャプチャ機能からラムダ式を返す:C++:次の関数は、多項式の係数を取り、そこから時間の関数を作成することになっている機能
std::function<double(double)> to_equation(const std::vector<double>& coefficients)
{
return [coefficients](double t)
{
auto total = 0.0;
for (int i = 0; i < coefficients.size(); i++)
{
total += coefficients[i] * pow(t,i);
return total;
}
};
}
それが使用可能でなければなりません次のように
std::vector<double> coefficients = {1.0,2.0,3.0};
auto f = to_equation(coefficients);
auto value = f(t);
コードしかしながら意図したとおりf(t)
の実行時に、to_equation(coefficients)
に渡さ係数が使用されないので、動作が、魔法のようにCONTからキャプチャいくつか全く異なる値ありません内線何が起こっているのですか?それをどうやって修正できますか?