On Wed, 14 Dec 2011, Amanullah Yasin wrote:
Hello,
I want to put edge label but facing an error. Please share any better idea. Thanks in advance.
BTW, you shouldn't add things to the boost namespace; property names don't need to be in that namespace. Anyway, the code worked for me with GCC 4.6. Here's the full test program I used: #include <boost/graph/properties.hpp> #include <boost/graph/adjacency_list.hpp> #include <string> #include <iostream> struct plComputableObject; struct slScoreValueType {}; namespace boost { struct computable_object_t { typedef vertex_property_tag kind; }; } typedef boost::property<boost::vertex_index_t, unsigned int, boost::property<boost::computable_object_t, plComputableObject*> > slVertexProperty; typedef boost::property<boost::edge_weight_t, slScoreValueType, boost::property<boost::edge_name_t, std::string> > slEdgeProperty; typedef boost::adjacency_list<boost::vecS, boost::listS, boost::bidirectionalS, slVertexProperty, slEdgeProperty> slGraph; int main(int, char**) { using namespace boost; slGraph graph; //Now i want to add edge name boost::property_map<slGraph, edge_name_t>::type labelmap = get(edge_name, graph); boost::graph_traits<slGraph>::edge_iterator ei, ei_end; for(tie(ei, ei_end) = edges(graph); ei != ei_end; ++ei){ std::string label = "unknown"; put(labelmap, *ei, label); std::cout<<"\nUndirected s: "<<source(*ei, graph) <<" T: "<<target(*ei, graph)<<" LABEL: "<< get(labelmap,*ei); } } -- Jeremiah Willcock