Fix gcc5 compilation error
This commit is contained in:
parent
404c275101
commit
553310fb31
@ -71,37 +71,38 @@ struct ContractedEdgeContainer
|
|||||||
auto flags_iter = flags.begin();
|
auto flags_iter = flags.begin();
|
||||||
|
|
||||||
// Remove all edges that are contained in the old set of edges and set the appropriate flag.
|
// Remove all edges that are contained in the old set of edges and set the appropriate flag.
|
||||||
auto new_end = std::remove_if(new_edges.begin(), new_edges.end(), [&](const auto &edge) {
|
auto new_end =
|
||||||
// check if the new edge would be sorted before the currend old edge
|
std::remove_if(new_edges.begin(), new_edges.end(), [&](const QueryEdge &edge) {
|
||||||
// if so it is not contained yet in the set of old edges
|
// check if the new edge would be sorted before the currend old edge
|
||||||
if (edge_iter == edge_end || mergeCompare(edge, *edge_iter))
|
// if so it is not contained yet in the set of old edges
|
||||||
{
|
if (edge_iter == edge_end || mergeCompare(edge, *edge_iter))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// find the first old edge that is equal or greater then the new edge
|
||||||
|
while (edge_iter != edge_end && mergeCompare(*edge_iter, edge))
|
||||||
|
{
|
||||||
|
BOOST_ASSERT(flags_iter != flags.end());
|
||||||
|
edge_iter++;
|
||||||
|
flags_iter++;
|
||||||
|
}
|
||||||
|
|
||||||
|
// all new edges will be sorted after the old edges
|
||||||
|
if (edge_iter == edge_end)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOST_ASSERT(edge_iter != edge_end);
|
||||||
|
if (mergable(edge, *edge_iter))
|
||||||
|
{
|
||||||
|
*flags_iter = *flags_iter | flag;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
BOOST_ASSERT(mergeCompare(edge, *edge_iter));
|
||||||
return false;
|
return false;
|
||||||
}
|
});
|
||||||
|
|
||||||
// find the first old edge that is equal or greater then the new edge
|
|
||||||
while (edge_iter != edge_end && mergeCompare(*edge_iter, edge))
|
|
||||||
{
|
|
||||||
BOOST_ASSERT(flags_iter != flags.end());
|
|
||||||
edge_iter++;
|
|
||||||
flags_iter++;
|
|
||||||
}
|
|
||||||
|
|
||||||
// all new edges will be sorted after the old edges
|
|
||||||
if (edge_iter == edge_end)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
BOOST_ASSERT(edge_iter != edge_end);
|
|
||||||
if (mergable(edge, *edge_iter))
|
|
||||||
{
|
|
||||||
*flags_iter = *flags_iter | flag;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
BOOST_ASSERT(mergeCompare(edge, *edge_iter));
|
|
||||||
return false;
|
|
||||||
});
|
|
||||||
|
|
||||||
// append new edges
|
// append new edges
|
||||||
edges.insert(edges.end(), new_edges.begin(), new_end);
|
edges.insert(edges.end(), new_edges.begin(), new_end);
|
||||||
|
Loading…
Reference in New Issue
Block a user