47 template <
typename F,
typename C,
typename... Args_>
50 for (std::size_t i = 0; i < c.size(); i++)
52 f(i, *c[i], std::forward<Args_>(args)...);
69 template <
typename Container,
typename Object,
typename Method,
72 Container
const& container,
75 for (std::size_t i = 0; i < container.size(); i++)
77 (
object.*method)(i, *container[i], std::forward<Args>(args)...);
96 template <
typename Container,
typename Object,
typename Method,
99 Object&
object, Method method, Container
const& container,
100 std::vector<std::size_t>
const& active_container_ids, Args&&... args)
102 if (active_container_ids.empty())
105 std::forward<Args>(args)...);
109 for (
auto const id : active_container_ids)
111 (
object.*method)(
id, *container[
id], std::forward<Args>(args)...);
126 template <
typename Container,
typename Method,
typename... Args>
128 Container
const& container,
131 for (std::size_t i = 0; i < container.size(); i++)
133 ((*container[i]).*method)(i, std::forward<Args>(args)...);
151 template <
typename Container,
typename Method,
typename... Args>
153 Method method, Container
const& container,
154 std::vector<std::size_t>
const& active_container_ids, Args&&... args)
156 if (active_container_ids.empty())
159 std::forward<Args>(args)...);
163 for (
auto const id : active_container_ids)
165 ((*container[id]).*method)(id, std::forward<Args>(args)...);
186 template <
typename F,
typename C,
typename Data,
typename... Args_>
190 assert(c.size() == data.size());
192 for (std::size_t i = 0; i < c.size(); i++)
194 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)