id summary reporter owner description type status milestone component version severity resolution keywords cc 12038 Max-flow algorithms not working with named parameters. Maël Valais Jeremiah Willcock "The named parameter called ""edge capacity"" is not working. As explained at the end of #8791, this is due to a slight inversion: The line in `boost/graph/named_function_params.hpp:326` {{{#!cpp typedef typename detail::choose_iml_result::type, edge_capacity_t>::type CapacityEdgeMap; }}} should rather be {{{#!cpp typedef typename detail::choose_iml_result::type, edge_capacity_t>::type CapacityEdgeMap; }}} Here are the max-flow algorithms that are currently not working with the named parameter ""Edge Capacity"": - edmonds_karp_max_flow, - push_relabel_max_flow, - boykov_kolmogorov_max_flow. --------- Minimal not-working example: {{{#!cpp #include #include #include #include #include #include #include #include using namespace boost; typedef adjacency_list_traits traits; struct edge_t { double capacity; float cost; float residual_capacity; traits::edge_descriptor reversed_edge; }; struct node_t { std::string name; boost::default_color_type color; traits::edge_descriptor predecessor; }; typedef adjacency_list < listS, vecS, directedS, node_t, edge_t > Graph; int main() { Graph g; property_map < Graph, double edge_t::* >::type capacity = get(&edge_t::capacity, g); property_map < Graph, float edge_t::* >::type cost = get(&edge_t::cost, g); property_map < Graph, float edge_t::* >::type residual_capacity = get(&edge_t::residual_capacity, g); property_map < Graph, traits::edge_descriptor edge_t::* >::type rev = get(&edge_t::reversed_edge, g); property_map < Graph, std::string node_t::* >::type name = get(&node_t::name, g); property_map < Graph, boost::default_color_type node_t::* >::type col = get(&node_t::color, g); property_map < Graph, traits::edge_descriptor node_t::* >::type pred = get(&node_t::predecessor, g); traits::vertex_descriptor s, t; read_dimacs_max_flow(g, capacity, rev, s, t); // XXX The ""named parameter version"" (producing errors) // XXX I chose to show the error with edmonds_karp_max_flow(). flow = edmonds_karp_max_flow(g, s, t, capacity_map(capacity) .residual_capacity_map(residual_capacity) .reverse_edge_map(rev) .color_map(col) .predecessor_map(pred)); return EXIT_SUCCESS; } }}}" Bugs new To Be Determined graph Boost 1.57.0 Problem