|
Boost Users : |
Subject: Re: [Boost-users] Fwd: [Graph] Problem with dynamic_properties
From: Jeremiah Willcock (jewillco_at_[hidden])
Date: 2010-10-19 12:23:16
On Wed, 13 Oct 2010, fokenrute wrote:
> Hi everybody, I'm new to BGL and very frustrated beacause I can't make a proper use of dynamic_properties.I'm just trying to read a graphviz dot file with
> read_graphviz and I found a sample which make use of dynamic_properties
> in order to make a proper call to read_grahviz.
> Here is the slightly modified sample:
>
> typedef boost::adjacency_list < boost::listS, boost::vecS, boost::undirectedS > Graph;
> typedef boost::graph_traits<Graph>::vertex_descriptor Vertex;
> typedef boost::graph_traits<Graph>::vertex_iterator Iterator;
>
>
> int main(int argc, char **argv)
> {
> Graph g;
> std::ifstream input(argv[1]);
> boost::dynamic_properties dp;
> dp.property("node_id", boost::get(boost::vertex_name, g));
> dp.property("weight", boost::get(boost::edge_weight, g));
> boost::read_graphviz(input, g, dp, "id");
> return 0;
> }
>
>
> When I try to compile it, g++ returns lots of cryptic template related error messages
> but I suspect the most relevant part is : no match for 'operator<<' in 'out << boost::get...'
> I must be doing something wrong, but I can't get it; expect you'll point me out my mistake
> so that I could re-focus on the algorithms instead of these annoying technical details.
You are trying to read data into the properties vertex_name and
edge_weight, but your graph does not have those properties (and thus does
not have any way to store the read-in data). If you modify the definition
of Graph to add vertex_name and edge_weight properties, the code will
probably work; see the adjacency_list documentation for how to add
properties to a graph. You can also use external properties, but just
modifying your graph type definition is probably easier here.
-- Jeremiah Willcock
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net