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;
}();

确定可以编译得过的吗?

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

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

如果楼主本来的代码是

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

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

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

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