Пусть будут классы:
template <class F> struct Receptor;
// F это function<void(...)>
template <class F>
struct Sender {
F use; // вызов sndr.use(a,b,c) должен размножится в list_use
std::vector<Receptor<F>*> list_use;
};
template <class F>
struct Receptor {
F process;
Sender<F> * sender = nullptr;
~Receptor() { /* удаление из sender текущего Receptor */ }
};
Можно ли как либо сделать универсально Sender::use, что бы выполнив sndr.use(1,2,3) оно обошло все элементы list_use и выполнило вызов соотвествующих process с указанными параметрами? Т.е. размножило один вызов use на весь список.