38 template <
typename F,
typename C,
typename... Args_>
41 for (std::size_t i = 0; i < c.size(); i++)
43 f(i, *c[i], std::forward<Args_>(args)...);
60 template <
typename Container,
typename Object,
typename Method,
63 Container
const& container,
66 for (std::size_t i = 0; i < container.size(); i++)
68 (
object.*method)(i, *container[i], std::forward<Args>(args)...);
87 template <
typename Container,
typename Object,
typename Method,
90 Object&
object, Method method, Container
const& container,
91 std::vector<std::size_t>
const& active_container_ids, Args&&... args)
93 if (active_container_ids.empty())
96 std::forward<Args>(args)...);
100 for (
auto const id : active_container_ids)
102 (
object.*method)(
id, *container[
id], std::forward<Args>(args)...);
117 template <
typename Container,
typename Method,
typename... Args>
119 Container
const& container,
122 for (std::size_t i = 0; i < container.size(); i++)
124 ((*container[i]).*method)(i, std::forward<Args>(args)...);
142 template <
typename Container,
typename Method,
typename... Args>
144 Method method, Container
const& container,
145 std::vector<std::size_t>
const& active_container_ids, Args&&... args)
147 if (active_container_ids.empty())
150 std::forward<Args>(args)...);
154 for (
auto const id : active_container_ids)
156 ((*container[id]).*method)(
id, std::forward<Args>(args)...);
177 template <
typename F,
typename C,
typename Data,
typename... Args_>
181 assert(c.size() == data.size());
183 for (std::size_t i = 0; i < c.size(); i++)
185 data[i] = f(i, *c[i], std::forward<Args_>(args)...);
static void executeSelectedMemberOnDereferenced(Method method, Container const &container, std::vector< std::size_t > const &active_container_ids, Args &&... args)
static void transformDereferenced(F const &f, C const &c, Data &data, Args_ &&... args)
static void executeSelectedMemberDereferenced(Object &object, Method method, Container const &container, std::vector< std::size_t > const &active_container_ids, Args &&... args)
static void executeMemberOnDereferenced(Method method, Container const &container, Args &&... args)
static void executeMemberDereferenced(Object &object, Method method, Container const &container, Args &&... args)
static void executeDereferenced(F const &f, C const &c, Args_ &&... args)