 
 
| G | A type that is a model of IncidenceGraph. | 
| g | An object of type G. | 
| e | An object of type boost::graph_traits<G>::edge_descriptor. | 
| u, v | Are objects of type boost::graph_traits<G>::vertex_descriptor. | 
| boost::graph_traits<G>::traversal_category This tag type must be convertible to incidence_graph_tag. | 
| boost::graph_traits<G>::out_edge_iteratorAn out-edge iterator for a vertex v provides access to the out-edges of the vertex. As such, the value type of an out-edge iterator is the edge descriptor type of its graph. An out-edge iterator must meet the requirements of MultiPassInputIterator. | 
| boost::graph_traits<G>::degree_size_typeThe unsigned integral type used for representing the number out-edges or incident edges of a vertex. | 
| source(e, g) | Returns the vertex descriptor for u of the edge (u,v) represented by e. Return type: vertex_descriptor | 
| target(e, g) | Returns the vertex descriptor for v of the edge (u,v) represented by e. Return type: vertex_descriptor | 
| out_edges(u, g) | Returns an iterator-range providing access to the out-edges (for
directed graphs) or incident edges (for undirected graphs) of vertex
u in graph g.  The source vertex of an edge obtained
via an out edge iterator is guaranteed (for both directed and
undirected graphs) to be the vertex u used in the call to
out_edges(u, g) and the target vertex must be a vertex
adjacent to u.[1] Return type: std::pair<out_edge_iterator, out_edge_iterator> | 
| out_degree(u, g) | Returns the number of out-edges (for directed graphs) or the
number of incident edges (for undirected graphs) of vertex u
in graph g. Return type: degree_size_type | 
The source(), target(), and out_edges() functions must all be constant time. The out_degree() function must be linear in the number of out-edges.
  template <class G>
  struct IncidenceGraphConcept
  {
    typedef typename boost::graph_traits<G>::out_edge_iterator out_edge_iterator;
    void constraints() {
      BOOST_CONCEPT_ASSERT(( GraphConcept<G> ));
      BOOST_CONCEPT_ASSERT(( MultiPassInputIteratorConcept<out_edge_iterator> ));
      p = out_edges(u, g);
      e = *p.first;
      u = source(e, g);
      v = target(e, g);
    }
    void const_constraints(const G& g) {
      p = out_edges(u, g);
      e = *p.first;
      u = source(e, g);
      v = target(e, g);
    }
    std::pair<out_edge_iterator, out_edge_iterator> p;
    typename boost::graph_traits<G>::vertex_descriptor u, v;
    typename boost::graph_traits<G>::edge_descriptor e;
    G g;
  };
| Copyright © 2000-2001 | Jeremy Siek,
Indiana University (jsiek@osl.iu.edu) Lie-Quan Lee, Indiana University (llee@cs.indiana.edu) Andrew Lumsdaine, Indiana University (lums@osl.iu.edu) |