gpt4 book ai didi

c++ - 错误 : cannot convert ‘’ to ‘double (*)(double)’

转载 作者:行者123 更新时间:2023-12-01 14:35:51 26 4
gpt4 key购买 nike

<分区>

我有这个错误

error: cannot convert ‘<lambda(double)>’ to ‘double (*)(double)’

来自代码

void Matrice::mapEmplace(double (*fct)(double))
{
for (size_t i = 1; i <= nLig; ++i)
for (size_t j = 1; j <= nCol; ++j)
(*this)(i, j) = (*fct)((*this)(i, j));
}

--

void function()
{
// ...
bool alea = something;

// alea results on reading in a file
utilisation.mapEmplace(
[alea](double x) -> double {
return alea ? 1 : 0;
}
);
//....
}

例如,当我不通过将其声明为全局来捕获 alea 时,它会起作用。但是当我在函数范围内声明 alea 时,g++ 会显示此错误。

您知道问题是什么吗?我如何通过将 alea 保留在我的函数本地来解决它?

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