src/work/marci/for_each_macros.h
changeset 382 f177fc597abd
parent 330 7ac0d4e8a31c
child 409 7ab7f083760a
equal deleted inserted replaced
0:6ab05139030a 1:3eb5eb047e15
    41 //     typename Graph::InEdgeIt e; g.first(e, n); return e; 
    41 //     typename Graph::InEdgeIt e; g.first(e, n); return e; 
    42 //   }
    42 //   }
    43 
    43 
    44 //FIXME ezt hogy a gorcsbe birja levezetni. Csak ugy leveszi a const-ot??
    44 //FIXME ezt hogy a gorcsbe birja levezetni. Csak ugy leveszi a const-ot??
    45   template<typename It, typename Graph> 
    45   template<typename It, typename Graph> 
    46   It loopFirst(const It& i, const Graph& g) {
    46   It loopFirst(const It&, const Graph& g) {
    47     It e=i; g.first(e); return e; 
    47     It e; g.first(e); return e; 
    48   }
    48   }
    49 
    49 
    50   template<typename It, typename Graph, typename Node> 
    50   template<typename It, typename Graph, typename Node> 
    51   It loopFirst(const It& i, const Graph& g, const Node& v) {
    51   It loopFirst(const It&, const Graph& g, const Node& v) {
    52     It e=i; g.first(e, v); return e; 
    52     It e; g.first(e, v); return e; 
    53   }
    53   }
    54 
    54 
    55 //   template<typename Graph> 
    55 //   template<typename Graph> 
    56 //   typename Graph::NodeIt loopFirstNode(const Graph& g) const {
    56 //   typename Graph::NodeIt loopFirstNode(const Graph& g) const {
    57 //     typename Graph::NodeIt e; g.first(e); return e; 
    57 //     typename Graph::NodeIt e; g.first(e); return e; 
    69 //   typename Graph::InEdgeIt 
    69 //   typename Graph::InEdgeIt 
    70 //   loopFirstIn Edge(const Graph& g, const Node& n) const {
    70 //   loopFirstIn Edge(const Graph& g, const Node& n) const {
    71 //     typename Graph::InEdgeIt e; g.first(e, n); return e; 
    71 //     typename Graph::InEdgeIt e; g.first(e, n); return e; 
    72 //   }
    72 //   }
    73 
    73 
    74 #define FOR_EACH_LOC(Ittype, e, g) for(Ittype (e)=loopFirst(Ittype(), (g)); (g).valid((e)); (g).next((e)))
    74 #define FOR_EACH_LOC(Ittype, e, g) for(Ittype e=loopFirst(Ittype(), (g)); (g).valid(e); (g).next(e))
    75 #define FOR_EACH_INC_LOC(Ittype, e, g, v) for(Ittype (e)=loopFirst(Ittype(), (g), (v)); (g).valid((e)); (g).next((e)))
    75 #define FOR_EACH_INC_LOC(Ittype, e, g, v) for(Ittype e=loopFirst(Ittype(), (g), (v)); (g).valid(e); (g).next(e))
    76 
    76 
    77 // #define FOR_EACH_EDGE_LOC(e, g) for((g).first((e)); (g).valid((e)); (g).next((e)))
    77 // #define FOR_EACH_EDGE_LOC(e, g) ezt nem tom hogy kell for((g).first((e)); (g).valid((e)); (g).next((e)))
    78 // #define FOR_EACH_NODE_LOC(e, g) for((g).first((e)); (g).valid((e)); (g).next((e)))
    78 // #define FOR_EACH_NODE_LOC(e, g) for((g).first((e)); (g).valid((e)); (g).next((e)))
    79 // #define FOR_EACH_INEDGE_LOC(e, g, v) for((g).first((e), (v)); (g).valid((e)); (g).next((e)))
    79 // #define FOR_EACH_INEDGE_LOC(e, g, v) for((g).first((e), (v)); (g).valid((e)); (g).next((e)))
    80 // #define FOR_EACH_OUTEDGE_LOC(e, g, v) for((g).first((e), (v)); (g).valid((e)); (g).next((e)))
    80 // #define FOR_EACH_OUTEDGE_LOC(e, g, v) for((g).first((e), (v)); (g).valid((e)); (g).next((e)))
    81 
    81 
    82 
    82