Adding additional property in Boost graph object.

Hi, Dear all I want to add one additional edge property in Boost graph object of type "bool". Please guide me how i can do it. I tried but not successful. ////////////////////// Here is the main definition of Boost graph object "slGraph" ///////////////////////////////////////////////////////////////////////// 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> slEdgeProperty; typedef boost::adjacency_list<boost::vecS, boost::listS, boost::bidirectionalS, \ slVertexProperty, slEdgeProperty> slGraph; typedef slGraph::vertex_descriptor slNode; typedef slGraph::edge_descriptor slEdge; typedef slGraph::vertex_iterator slNodeIterator; typedef slGraph::edge_iterator slEdgeIterator; typedef slGraph::out_edge_iterator slOutEdgeIterator; typedef slGraph::in_edge_iterator slInEdgeIterator; typedef slGraph::adjacency_iterator slOutNodeIterator; typedef slGraph::inv_adjacency_iterator slInNodeIterator; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Thanks in advance. Amanullah YASIN PhD student Equipe COD (Connaissances et Décision) LINA (Laboratoire d'Informatique de Nantes Atlantique) Ecole Polytechnique de l'Université de Nantes La Chantrerie - rue Christian Pauc - BP 50609 44306 Nantes Cedex 3 FRANCE Mob# 06 99 07 49 71 Fix # 02 72 00 26 45 amanyasin@ gmail.com, hotmail.com, yahoo.com

On Mon, 30 Nov 2009, Amanullah Yasin wrote:
Hi, Dear all
I want to add one additional edge property in Boost graph object of type "bool". Please guide me how i can do it. I tried but not successful.
////////////////////// Here is the main definition of Boost graph object "slGraph" ///////////////////////////////////////////////////////////////////////// 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> slEdgeProperty;
typedef boost::adjacency_list<boost::vecS, boost::listS, boost::bidirectionalS, \ slVertexProperty, slEdgeProperty> slGraph;
typedef slGraph::vertex_descriptor slNode; typedef slGraph::edge_descriptor slEdge; typedef slGraph::vertex_iterator slNodeIterator; typedef slGraph::edge_iterator slEdgeIterator; typedef slGraph::out_edge_iterator slOutEdgeIterator; typedef slGraph::in_edge_iterator slInEdgeIterator; typedef slGraph::adjacency_iterator slOutNodeIterator; typedef slGraph::inv_adjacency_iterator slInNodeIterator;
You don't need to put your property tag in the boost namespace. Is there anything you tried to do to add the new property and failed? You can just add a new element to the chain of boost::property elements for your edge properties (slEdgeProperty), given your property tag (see the definition of computable_object_t for how to create a tag, but use edge_property_tag for yours). You can also use bundled properties (http://www.boost.org/doc/libs/1_41_0/libs/graph/doc/bundles.html) which will greately simplify adding properties. -- Jeremiah Willcock
participants (2)
-
Amanullah Yasin
-
Jeremiah Willcock