As part of graph contraction, node renumbering leads to in-place permuting of graph state, including boolean vector elements. std::vector<bool> returns proxy objects when referencing individual bits. To correctly swap bool elements using MSVC, we need to explicitly apply std::vector<bool>::swap. Making this change fixes osrm-contract on Windows. We also correct failing tests and other undefined behaviours (mainly iterator access outside boundaries) highlighted by MSVC. |
||
---|---|---|
.. | ||
bisection_graph_view.cpp | ||
bisection_graph.cpp | ||
bisection_to_partition.cpp | ||
cell_storage.cpp | ||
dinic.cpp | ||
graph_generator.hpp | ||
multi_level_graph.cpp | ||
multi_level_partition.cpp | ||
recursive_bisection.cpp | ||
remove_unconnected.cpp | ||
renumber.cpp | ||
reorder_first_last.cpp | ||
scc_integration.cpp |