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 | ||