$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
From: Doug Gregor (dgregor_at_[hidden])
Date: 2006-02-06 16:59:21
On Feb 6, 2006, at 8:04 AM, Dmitry Bufistov wrote:
> 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?
No, you aren't doing anything wrong. The in_edges function was 
accidentally left out of the adjacency_matrix class template. Nobody 
has gotten around to implementing it yet.
> Any ideas how to implement my function in resonable way would be 
> greatly
> appreciated.
> Note: all works fine with  "adjacency_list<vecS, vecS, bidirecrionalS>"
Right. adjacency_list gets a lot more use/attention than 
adjacency_matrix, so it has a more complete feature set.
I usually try not to promise anything, but perhaps we can get 
in_edges() implemented relatively quickly.
        Doug