gpt4 book ai didi

c++ - 将带有变量捕获的 lambda 表达式转换为函数指针

转载 作者:太空狗 更新时间:2023-10-29 21:17:48 26 4
gpt4 key购买 nike

<分区>

我正在尝试使用 lambda 函数来快速测试结果,但我遇到了困难。我不知道为什么事情没有像(我觉得)应该的那样工作。

这如我所料:

double(*example)(double) = [](double S)->double {return std::max(1-100/S, 0.0) * LogNormal(S, 100, 0.25); };
NewtonCotes(lowerBound, upperBound, example, intervals, order)

但是这不会:

double(*example)(double) = [K](double S)->double {return std::max(1 - K / S, 0.0) * LogNormal(S, 100, 0.25); };

报错:

Error: no suitable conversion function from "lambda []double(double S)->double" to "double(*)(double)" exists.

我不明白为什么在捕获列表中添加一些东西会改变这里发生的事情。不过,我对 C++ 中的 lambda 还很陌生,所以可能在某个地方犯了一个愚蠢的错误……

我需要做什么才能让它发挥作用?我已经看到一些人注意到智能感知中存在一个错误,并且像这样的东西应该可以工作,尽管它是一个稍微不同的问题(至少我认为它们不完全匹配)。我也在使用 VS2013,而不是提到该错误的 2011。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com