[Apologies if this has been asked before. Gmane is down and Google didn't return anything interesting.] I have a Boost (1.34.1) Graph declared like this: typedef boost::adjacency_list<boost::setS, // Out edge list type boost::listS, // Vertex list type boost::undirectedS, vertex_property_bundle // Vertex properties // Edge properties > my_graph_type; I want to find out if an edge is in the graph: typedef typename boost::graph_traits<my_graph_type>:: edge_descriptor_type edge; edge e; bool present; boost::tie(e, present) = edge(v1, v2, my_graph); Unfortunately, g++ 4.1.2 doesn't like it: error: no matching function for call to boost::detail::edge_desc_impl<boost::undirected_tag, void*>::edge_desc_impl(void* const&, void* const&, boost::adjacency_list<boost::setS, boost::listS, boost::undirectedS, vertex_property_bundle, boost::no_property, boost::no_property, boost::listS>&) boost-1_34_1/boost/graph/detail/edge.hpp:43: note: candidates are: boost::detail::edge_desc_impl<Directed, Vertex>::edge_desc_impl(Vertex, Vertex, const void*) [with Directed = boost::undirected_tag, Vertex = void*] boost-1_34_1/boost/graph/detail/edge.hpp:41: note: boost::detail::edge_desc_impl<Directed, Vertex>::edge_desc_impl() [with Directed = boost::undirected_tag, Vertex = void*] boost/graph/detail/edge.hpp:35: note: boost::detail::edge_desc_impl<boost::undirected_tag, void*>::edge_desc_impl(const boost::detail::edge_desc_impl<boost::undirected_tag, void*>&) Has anyone else run into this problem before? How does a reference to the graph get passed to edge_desc_impl's constructor? Thanks. -Dave