LINUX.ORG.RU

История изменений

Исправление xaizek, (текущая версия) :

Мне кажется, что если принимать не F, а список аргументов, то use можно присвоить лямбду в конструкторе, которая обходит детей. Что-то вроде:

template <typename... Args>
struct Sender {
    std::function<void(Args...)> use;
    std::vector<Receptor<std::function<void(Args...)>*> list_use;

    Sender();
}

template <typename... Args>
Sender::Sender()
{
    use = [this](Args &&...args) {
        for (auto &receptor : list_use) {
            receptor.process(args...);
        }
    };
}

Исходная версия xaizek, :

Мне кажется, что если принимать не F а список аргументов, то use можно присвоить лямбду в конструкторе, которая обходит детей. Что-то вроде:

template <typename... Args>
struct Sender {
    std::function<void(Args...)> use;
    std::vector<Receptor<std::function<void(Args...)>*> list_use;

    Sender();
}

template <typename... Args>
Sender::Sender()
{
    use = [this](Args &&...args) {
        for (auto &receptor : list_use) {
            receptor.process(args...);
        }
    };
}