id summary reporter owner description type status milestone component version severity resolution keywords cc 10895 graph - copy_component is broken erdem@… Jeremiah Willcock "I noticed two issues with copy_component in graph/copy.hpp. 1. The non-named parameter version gives compiler error due to failing look up: {{{ return detail::copy_component_impl (g_in, src, g_out, make_vertex_copier(g_in, g_out), make_edge_copier(g_in, g_out), make_iterator_property_map(orig2copy.begin(), get(vertex_index, g_in), orig2copy[0]), bgl_named_params('x') // dummy param object ); }}} error: 'make_vertex_copier' was not declared in this scope. Prefixing them with '''detail::''' solves this issue. This change makes it similar to copy_graph which also refers to the detail namespace for these functions. Fixed version: {{{ return detail::copy_component_impl (g_in, src, g_out, detail::make_vertex_copier(g_in, g_out), detail::make_edge_copier(g_in, g_out), make_iterator_property_map(orig2copy.begin(), get(vertex_index, g_in), orig2copy[0]), bgl_named_params('x') // dummy param object ); }}} 2. In graph_copy_visitor struct's '''copy_one_vertex''' member function, the template arguments include '''class Graph''' but it is not used (neither in the function arguments nor inside the func. body). {{{ template typename graph_traits::vertex_descriptor copy_one_vertex(Vertex u) const { ... } }}} So the compiler complains about the failing deduction. error: template argument deduction/substitution failed: note: couldn't deduce template parameter 'Graph' Fix: Removing the template argument class Graph fixes the issue. {{{ template typename graph_traits::vertex_descriptor copy_one_vertex(Vertex u) const { ... } }}} Note: Tried with GCC 4.7.2 and 4.8.3 " Bugs new To Be Determined graph Boost 1.57.0 Problem graph copy_component erdem.cilingir@…