v = add_vertex(g);
      clear_vertex(v, g);
      remove_vertex(v, g);
      e_b = add_edge(u, v, g);
      remove_edge(u, v, g);
      remove_edge(e, g);
    }
    G g;
    edge_descriptor e;
    std::pair&lt;edge_descriptor, bool&gt; e_b;
    typename boost::graph_traits&lt;G&gt;::vertex_descriptor u, v;
    typename boost::graph_traits&lt;G&gt;::out_edge_iterator iter;
  };

  template &lt;class edge_descriptor&gt;
  struct dummy_edge_predicate {
    bool operator()(const edge_descriptor& e) const {
   