gpt4 book ai didi

C++0x lambda 按值捕获总是 const?

转载 作者:太空宇宙 更新时间:2023-11-04 13:38:18 25 4
gpt4 key购买 nike

有什么方法可以按值捕获,并使捕获的值成为非常量?我有一个库仿函数,我想捕获并调用一个非常量但应该是的方法。

以下代码无法编译,但使 foo::operator() const 修复它。

struct foo
{
bool operator () ( const bool & a )
{
return a;
}
};


int _tmain(int argc, _TCHAR* argv[])
{
foo afoo;

auto bar = [=] () -> bool
{
afoo(true);
};

return 0;
}

最佳答案

使用可变的。


auto bar = [=] () mutable -> bool ....

如果没有 mutable,您将 lambda 对象的运算符 () 声明为常量。

关于C++0x lambda 按值捕获总是 const?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28778440/

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