代码遇到一个无法赋值的问题
//FNodeGroupIndex t = AllocateEightNodes(CurBound, CurNode);
//Nodes[CurNode].ChildIndex = t;
Nodes[CurNode].ChildIndex = AllocateEightNodes(CurBound, CurNode);
必须按注释写法保存临时变量再赋值。原因是AllocateEightNodes里面对Nodes数组Push导致扩容了。但是按照一般想法赋值语句先做右边再做左边,查看汇编发现先算的左边地址然后再调用AllocateEightNodes,开启O2优化就会这样。又去用std::vector试了一下也是关闭O2就正常,开启O2就不行了,估计是个未定义行为。