Skip to content

Commit df398f1

Browse files
committed
change to the generic tuple function
Signed-off-by: Nitish Bharambe <[email protected]>
1 parent c8d8512 commit df398f1

File tree

1 file changed

+8
-15
lines changed
  • power_grid_model_c/power_grid_model/include/power_grid_model/main_core

1 file changed

+8
-15
lines changed

power_grid_model_c/power_grid_model/include/power_grid_model/main_core/topology.hpp

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -205,17 +205,6 @@ constexpr void register_connections_components(ComponentContainer const& compone
205205
[](Source const& source) { return source.status(); });
206206
}
207207

208-
template <typename Tuple, std::size_t... Is>
209-
void construct_topology_impl(auto const& components, ComponentTopology& comp_topo, std::index_sequence<Is...>) {
210-
(register_topology_components<std::tuple_element_t<Is, Tuple>>(components, comp_topo), ...);
211-
}
212-
213-
template <typename Tuple, std::size_t... Is>
214-
void construct_components_connections_impl(auto const& components, ComponentConnections& comp_conn,
215-
std::index_sequence<Is...>) {
216-
(register_connections_components<std::tuple_element_t<Is, Tuple>>(components, comp_conn), ...);
217-
}
218-
219208
} // namespace detail
220209

221210
template <typename MainModelType>
@@ -225,8 +214,10 @@ template <typename MainModelType>
225214
ComponentTopology construct_topology(typename MainModelType::ComponentContainer const& components) {
226215
ComponentTopology comp_topo;
227216
using TopologyTypesTuple = typename MainModelType::TopologyTypesTuple;
228-
detail::construct_topology_impl<TopologyTypesTuple>(
229-
components, comp_topo, std::make_index_sequence<std::tuple_size_v<TopologyTypesTuple>>{});
217+
main_core::utils::run_functor_with_tuple_return_void<TopologyTypesTuple>(
218+
[&components, &comp_topo]<typename CompType>() {
219+
detail::register_topology_components<CompType>(components, comp_topo);
220+
});
230221
return comp_topo;
231222
}
232223

@@ -235,8 +226,10 @@ template <typename MainModelType>
235226
ComponentConnections construct_components_connections(typename MainModelType::ComponentContainer const& components) {
236227
ComponentConnections comp_conn;
237228
using TopologyConnectionTypesTuple = typename MainModelType::TopologyConnectionTypesTuple;
238-
detail::construct_components_connections_impl<TopologyConnectionTypesTuple>(
239-
components, comp_conn, std::make_index_sequence<std::tuple_size_v<TopologyConnectionTypesTuple>>{});
229+
main_core::utils::run_functor_with_tuple_return_void<TopologyConnectionTypesTuple>(
230+
[&components, &comp_conn]<typename CompType>() {
231+
detail::register_connections_components<CompType>(components, comp_conn);
232+
});
240233
return comp_conn;
241234
}
242235

0 commit comments

Comments
 (0)