@@ -23,12 +23,12 @@ template <type_traits::c_instantiation_of<adjacency_matrix> AdjacencyMatrix>
2323 typename AdjacencyMatrix::matrix_type& matrix, const typename AdjacencyMatrix::edge_type* edge
2424) {
2525 // get the edge and validate the address
26- auto & matrix_element = matrix.at (edge->first_id ()) .at (edge->second_id ());
26+ auto & matrix_element = matrix.at (edge->first (). id ()) .at (edge->second (). id ());
2727 if (edge != matrix_element.get ())
2828 throw std::invalid_argument (std::format (
2929 " Got invalid edge [vertices = ({}, {}) | addr = {}]" ,
30- edge->first_id (),
31- edge->second_id (),
30+ edge->first (). id (),
31+ edge->second (). id (),
3232 io::format (edge)
3333 ));
3434
@@ -136,7 +136,7 @@ struct directed_adjacency_matrix {
136136 static const edge_type& add_edge (impl_type& self, edge_ptr_type edge) {
137137 detail::check_edge_override<impl_type>(self, edge);
138138
139- auto & matrix_element = self._matrix [edge->first_id () ][edge->second_id ()];
139+ auto & matrix_element = self._matrix [edge->first (). id () ][edge->second (). id ()];
140140 matrix_element = std::move (edge);
141141 ++self._n_unique_edges ;
142142
@@ -152,7 +152,7 @@ struct directed_adjacency_matrix {
152152
153153 auto & matrix_row_source = self._matrix [source_id];
154154 for (auto & edge : new_edges)
155- matrix_row_source[edge->second_id ()] = std::move (edge);
155+ matrix_row_source[edge->second (). id ()] = std::move (edge);
156156
157157 self._n_unique_edges += new_edges.size ();
158158 }
@@ -231,8 +231,8 @@ struct undirected_adjacency_matrix {
231231 static const edge_type& add_edge (impl_type& self, edge_ptr_type edge) {
232232 detail::check_edge_override<impl_type>(self, edge);
233233
234- const auto first_id = edge->first_id ();
235- const auto second_id = edge->second_id ();
234+ const auto first_id = edge->first (). id ();
235+ const auto second_id = edge->second (). id ();
236236
237237 if (not edge->is_loop ())
238238 self._matrix [second_id][first_id] = edge;
@@ -253,8 +253,8 @@ struct undirected_adjacency_matrix {
253253 auto & matrix_row_source = self._matrix [source_id];
254254 for (auto & edge : new_edges) {
255255 if (not edge->is_loop ())
256- self._matrix [edge->second_id ()][source_id] = edge;
257- matrix_row_source[edge->second_id ()] = std::move (edge);
256+ self._matrix [edge->second (). id ()][source_id] = edge;
257+ matrix_row_source[edge->second (). id ()] = std::move (edge);
258258 }
259259
260260 self._n_unique_edges += new_edges.size ();
@@ -265,8 +265,8 @@ struct undirected_adjacency_matrix {
265265 detail::strict_get<impl_type>(self._matrix , &edge) = nullptr ;
266266 }
267267 else {
268- const auto first_id = edge.first_id ();
269- const auto second_id = edge.second_id ();
268+ const auto first_id = edge.first (). id ();
269+ const auto second_id = edge.second (). id ();
270270
271271 detail::strict_get<impl_type>(self._matrix , &edge) = nullptr ;
272272 // if the edge was found in the first matrix cell,
0 commit comments