If I'd have to guess, I'd say that vertex_index is a vertex_descriptor when using VecS. I use write_graphviz with my graph employing VecS without a problem. I notice that your graph uses ListS. As a test, try switching to VecS, this would add clarity to the problem... Jean Utke wrote:
Since I haven't gotten any reaction to this - after some more digging it seems the explanation lies with the changes made between revisions 1.17 and 1.21 of boost/graph/graphviz.hpp for instance for vertex printing: revision 1.17: line 254: out << *i; vs revision 1.21: line 263: out << get(vertex_index, *i);
I read the change comment from CVS: === Revision *1.18* /Tue Aug 12 01:15:37 2003 UTC/ (15 months, 3 weeks ago) by /jsiek/ : changed to print the vertex_index instead of the vertex_descriptor === I understand how vertex_descriptor works, I am not sure about vertex_index, I have not yet fully traced it back through the templates. Can somebody please explain this to me?
Thanks,
Jean
Jean Utke wrote:
I am running into a problem compiling code that uses write_graphviz which used to work e.g. for gcc 3.3 and boost versions prior to 1.31. As I am trying to move forward I am testing different gcc and boost versions. Here is the example code: ---------------------------------------------------------------- #include "boost/graph/adjacency_list.hpp" #include "boost/graph/graphviz.hpp"
class BoostVertexContentType { public: enum { num=100 }; typedef boost::vertex_property_tag kind; };
class BoostEdgeContentType { public: enum { num=101 }; typedef boost::edge_property_tag kind; };
int main(void) { boost::adjacency_list< boost::listS, boost::listS, boost::bidirectionalS, boost::property
, boost::property > b; std::ofstream anOutFileStream; anOutFileStream.open("test.dot",std::ios::out); boost::write_graphviz(anOutFileStream, b); anOutFileStream.close(); } ----------------------------------------------------------------- This compiles ok with gcc 3.3 and boost 1.30.0 / 1.30.2 It does not compile with gcc 3.3/3.4.3 and boost 1.31/1.32 basically complaining about:
boost_1_32_0/boost/graph/graphviz.hpp:269: error: no match for `std::basic_ostream
& << const boost::detail::error_property_not_found&' operator My target right now is to use gcc 3.4.3 with boost 1.32. Before I spend time searching for a workaround I hope that somebody has seen this and that there is an easy solution.
Thanks,
Jean
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users