From 553310fb316101f5696a807d39907d51080cf8e3 Mon Sep 17 00:00:00 2001 From: Denis Koronchik Date: Mon, 16 Oct 2017 18:20:23 +0300 Subject: [PATCH] Fix gcc5 compilation error --- .../contractor/contracted_edge_container.hpp | 61 ++++++++++--------- 1 file changed, 31 insertions(+), 30 deletions(-) diff --git a/include/contractor/contracted_edge_container.hpp b/include/contractor/contracted_edge_container.hpp index 01db370b2..5cad19ae3 100644 --- a/include/contractor/contracted_edge_container.hpp +++ b/include/contractor/contracted_edge_container.hpp @@ -71,37 +71,38 @@ struct ContractedEdgeContainer auto flags_iter = flags.begin(); // 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) { - // check if the new edge would be sorted before the currend old edge - // if so it is not contained yet in the set of old edges - if (edge_iter == edge_end || mergeCompare(edge, *edge_iter)) - { + auto new_end = + std::remove_if(new_edges.begin(), new_edges.end(), [&](const QueryEdge &edge) { + // check if the new edge would be sorted before the currend old edge + // 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; - } - - // 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 edges.insert(edges.end(), new_edges.begin(), new_end);