On Mon, 2005-08-15 at 10:14 +0400, Vladimir Prus wrote:
Yes, null_vertex should be defined. I've just committed the attached patch to CVS, and your test program now compiles. You can either grab the current CVS version (CVS trunk), or apply the patch to 1.33 sources.
Thanks a lot! I have one more problem with filtered_graph, but this time it has to do with bundled properties. If I try to compile the following program: -------------------------------------------------------------- #include <boost/graph/adjacency_list.hpp> #include <boost/graph/filtered_graph.hpp> using namespace boost; struct VertexProperties { int answer; }; int main() { typedef adjacency_list<vecS,vecS,bidirectionalS,VertexProperties> graph_t; typedef filtered_graph<graph_t,keep_all> f_graph_t; graph_t g; f_graph_t fg(g, keep_all()); graph_traits<f_graph_t>::vertex_descriptor v = add_vertex(g); fg[v].answer = 42; return 0; } -------------------------------------------------------------- I get the following error with boost 1.33 and GCC 4.0.1: /usr/include/boost/graph/filtered_graph.hpp: In member function ‘typename boost::graph::detail::bundled_result<Graph, Descriptor>::type& boost::filtered_graph<Graph, EdgePredicate, VertexPredicate>::operator[](Descriptor) [with Descriptor = unsigned int, Graph = main()::graph_t, EdgePredicate = boost::keep_all, VertexPredicate = boost::keep_all]’: test2.cc:19: instantiated from here /usr/include/boost/graph/filtered_graph.hpp:204: error: ‘local_to_global’ was not declared in this scope This was supposed to work right? The error is pretty clear, but I don't know what "local_to_global" is supposed to do, and where it should be. I made the attached modifications to a local version of filtered_graph.hpp, and the code above compiles, but I don't think that they are right at all, since I changed the constness of the internal reference to the original graph. -- Tiago de Paula Peixoto <tiago@forked.de>