Re: [Boost-users] [BGL] there is no in_edges() function for adjacency_matrix<>
Dmitry Bufistov <dmitry@lsi.upc.edu> writes:
Hi, A huge disappointment again came to me today. I used boost::adjacency<boost::directedS> class for representation of simple Petri net. I was trying to define the following function ////////////////////////////////////////// bool if_enabled(transition_descriptor_t tr, graph_t net) { assert((net[tr].m_node_type == TRANSITION) && "if_enabled called with non transition node");
BGL_FORALL_INEDGES_T(tr, ed, net, graph_t) { if (net[boost::source(ed, net)].m_tokens_number < net[ed].m_weight) return false; } return true; }
////////////////////////////////////////////////////////// But I failed because of lack of boost::in_edges() function specialization for type that I've chosen. Am I doing something wrong? Any ideas how to implement my function in resonable way would be greatly appreciated. Note: all works fine with "adjacency_list<vecS, vecS, bidirecrionalS>"
By /definition/, BidirectionalGraph is a graph where you can enumerate the incoming edges for any node. Unless you specify bidirectionalS, an adjacency list won't be a BidirectionalGraph, and you can't use in_edges. So everything is working just as I would expect it to.
But what about boost::adjacency_matrix<boost::directedS> ? Is there any way to iterate over all incoming edges? Where I can read your answer before I recieve e-mail? Time is very important ) Thank you, --dima
--- Dmitry Bufistov wrote:
But what about boost::adjacency_matrix<boost::directedS>?
No, that too has to be boost::adjacency_matrix<boost::bidirectionalS>.
Where I can read your answer before I recieve e-mail?
Try <http://lists.boost.org/Archives/boost-users/> Cheers! Cromwell D. Enage __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com
participants (2)
-
Cromwell Enage
-
Dmitry Bufistov