类函数中得lambda表达式中一般不能调用 自身类得函数
有两种办法可以调用:
1: 将需要调用得函数编程静态函数, 那么可以在lambda中直接调用
2: 将this指针传入进lambda函数
XZOrdering* ths = this;
auto checkValue = [&ranges, &remaining, isContained, isOverlapped, ths](XElement & quad, short level)
{
ull min, max;
if (isContained(quad))
{
ths->sequenceInterval(quad.xmin, quad.ymin, level, false, min, max);
ranges.emplace_back(min, max, true);
}
else if (isOverlapped(quad))
{
ths->sequenceInterval(quad.xmin, quad.ymin, level, true, min, max);
ranges.emplace_back(min, max, false);
auto cds = quad.children();
for (int i = 0; i < cds.size(); i++)
remaining.emplace_back(cds[i]);
}
};