1010
1111namespace power_grid_model {
1212
13- template <typename ContainerType, typename ComponentType >
13+ template <typename ContainerType, typename RetrievableType >
1414concept component_container_c = requires (ContainerType const & c, ID id, Idx2D idx2d) {
15- { c.template citer <ComponentType >().begin () } -> std::forward_iterator;
16- { c.template citer <ComponentType >().end () } -> std::forward_iterator;
17- { *(c.template citer <ComponentType >().begin ()) } -> std::same_as<ComponentType const &>;
18- { *(c.template citer <ComponentType >().end ()) } -> std::same_as<ComponentType const &>;
19- { c.template get_item <ComponentType >(id) } -> std::convertible_to<ComponentType const &>;
20- { c.template size <ComponentType >() } -> std::same_as<Idx>;
21- { c.template get_seq <ComponentType >(idx2d) } -> std::same_as<Idx>;
15+ { c.template citer <RetrievableType >().begin () } -> std::forward_iterator;
16+ { c.template citer <RetrievableType >().end () } -> std::forward_iterator;
17+ { *(c.template citer <RetrievableType >().begin ()) } -> std::same_as<RetrievableType const &>;
18+ { *(c.template citer <RetrievableType >().end ()) } -> std::same_as<RetrievableType const &>;
19+ { c.template get_item <RetrievableType >(id) } -> std::convertible_to<RetrievableType const &>;
20+ { c.template size <RetrievableType >() } -> std::same_as<Idx>;
21+ { c.template get_seq <RetrievableType >(idx2d) } -> std::same_as<Idx>;
2222};
2323
24- template <typename ContainerType, typename ... ComponentType >
25- concept multi_component_container_c = (component_container_c<ContainerType, ComponentType > && ...);
24+ template <typename ContainerType, typename ... RetrievableType >
25+ concept multi_component_container_c = (component_container_c<ContainerType, RetrievableType > && ...);
2626
2727} // namespace power_grid_model
0 commit comments