/*!
\ingroup PkgBGLConcepts
\cgalConcept
Concept from the Boost Graph Library.
See https://www.boost.org/libs/graph/doc/EdgeListGraph.html.
The concept `EdgeListGraph` refines the concept
Graph
and adds the requirement for traversal of all edges in a graph.
\cgalRefines{Graph}
\cgalHasModelsBegin
\cgalHasModelsBare{See \link PkgBGLTraits Boost Graph Traits Specializations \endlink}
\cgalHasModelsEnd
\sa \link PkgBGLConcepts Graph Concepts \endlink
*/
class EdgeListGraph{};
/*! \relates EdgeListGraph
* returns an iterator range over all edges.
*/
template
std::pair::edge_iterator,
boost::graph_traits::edge_iterator>
edges(const EdgeListGraph& g);
/*! \relates EdgeListGraph
returns an upper bound of the number of edges of the graph.
\attention `num_edges()` may return a number larger than `std::distance(edges(g).first, edges(g).second)`.
This is the case for implementations only marking edges deleted in the edge container.
*/
template
boost::graph_traits::edges_size_type
num_edges(const EdgeListGraph& g);
/*! \relates EdgeListGraph
returns the source vertex of `e`.
*/
template
boost::graph_traits::vertex_descriptor
source(boost::graph_traits::edge_descriptor e, const EdgeListGraph& g);
/*! \relates EdgeListGraph
returns the target vertex of `e`.
*/
template
boost::graph_traits::vertex_descriptor
target(boost::graph_traits::edge_descriptor e, const EdgeListGraph& g);