File tree Expand file tree Collapse file tree 1 file changed +11
-4
lines changed
power_grid_model_c/power_grid_model/include/power_grid_model Expand file tree Collapse file tree 1 file changed +11
-4
lines changed Original file line number Diff line number Diff line change 1010
1111namespace power_grid_model ::common {
1212
13- template <typename ContainerType, typename ... RetrievableType>
14- concept component_container_c = (requires (ContainerType const & c, ID id, Idx2D idx2d) {
13+ namespace detail {
14+ template <typename ContainerType, typename RetrievableType>
15+ concept single_component_container_c = requires (ContainerType const & c, ID id, Idx2D idx2d) {
1516 { c.template citer <RetrievableType>().begin () } -> std::forward_iterator;
1617 { c.template citer <RetrievableType>().end () } -> std::forward_iterator;
1718 { *(c.template citer <RetrievableType>().begin ()) } -> std::same_as<RetrievableType const &>;
18- { *(c.template citer <RetrievableType>().end ()) } -> std::same_as<RetrievableType const &>;
19+ {
20+ c.template citer <RetrievableType>().end ()
21+ } -> std::same_as<decltype (c.template citer <RetrievableType>().begin ())>;
1922 { c.template get_item <RetrievableType>(id) } -> std::convertible_to<RetrievableType const &>;
2023 { c.template size <RetrievableType>() } -> std::same_as<Idx>;
2124 { c.template get_seq <RetrievableType>(idx2d) } -> std::same_as<Idx>;
22- } && ...);
25+ };
26+ } // namespace detail
27+
28+ template <typename ContainerType, typename ... RetrievableType>
29+ concept component_container_c = (detail::single_component_container_c<ContainerType, RetrievableType> && ...);
2330
2431} // namespace power_grid_model::common
You can’t perform that action at this time.
0 commit comments