C++赋值语句问题(最难的赋值语句)

我在看别人的项目的时候看到了这样的一段赋值语句,请问有大神帮忙理解下吗?
const bool is_cell_moved_to_left_partition = & {
if (right_partition.AreAllCellsLocked()) {
return false;
}
if (left_partition.AreAllCellsLocked()) {
return true;
}
if (!ArePartitionsBalancedAfterMove(right_partition, left_partition)) {
return false;
}
if (!ArePartitionsBalancedAfterMove(left_partition, right_partition)) {
return true;
}
if (is_previous_cell_moved_to_left_partition) {
return true;
}
return false;
}();

c++

4个回答

建议楼主下次贴代码按照代码格式来贴,有时候直接贴代码会丢失一些字符,比如永远会丢失的头文件包含。

如果楼主本来的代码是

 const bool is_cell_moved_to_left_partition = [&]{ ................}():

那就只是一个直接调用的lambda 表达式,& 表示可以在该表达式内直接引用已定义的局部变量,具体可以参看c++11 标准中关于lambda表达式的说明。

如果源代码不是当我没答就好了=_=

QiaXi
Valtava 答案不说了么,"直接调用"。这个括号是调用符,跟函数调用没什么区别
3 年多之前 回复
jiasuwoniu
jiasuwoniu 回复caozhy: 如果是lamda,后面的()是什么, 不是应该[] {}可以省略参数列表和返回值,但是括号是什么
3 年多之前 回复
caozhy
回答这么多问题就耍赖把我的积分一笔勾销了 正解
3 年多之前 回复

原来是C艹的lambda。。C艹11的魅力,老码的伤悲

确定可以编译得过的吗?

那个与是什么鬼,结构看得懂但是你调用的都是什么

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问