While studying boost.graph, I stumbled upon this constructor definition:
template <class EdgeIterator>
adjacency_list(EdgeIterator first, EdgeIterator last,
vertices_size_type n,
edges_size_type = 0,
const GraphProperty& p = GraphProperty())
: Base(n, first, last), m_property(new graph_property_type(p))
{ }
I have 2 questions here:
- What does “edges_size_type = 0,” means here? Assigning a value to a TYPE, instead of a parameter? Can anyone please point me to an explanation of this grammar usage?
- Why the necessary of edges_size_type = 0 parameter, since there’s a range pair of “EdgeIterator first, EdgeIterator last”?
Does anyone have an answer? Thanks.