Не могу сообразить, как сделать это через for_each:
int x = something1;
int y = something2;
typedef boost::function2<void, int, int> F;
typedef std::list <F> Functions;
Function functs;
//добавили несколько функций-членов классов в functs (boost::bind):
for(Functions::iterator i = functs.begin(); i != functs.end(); ++i)
(*i)(x, y);
Как сделать без цикла?
Здравствуйте, Wody, Вы писали:
W>Не могу сообразить, как сделать это через for_each:
W>W>int x = something1;
W>int y = something2;
W>typedef boost::function2<void, int, int> F;
W>typedef std::list <F> Functions;
W>Function functs;
W>//добавили несколько функций-членов классов в functs (boost::bind):
W>for(Functions::iterator i = functs.begin(); i != functs.end(); ++i)
W> (*i)(x, y);
W>
W>Как сделать без цикла?
std::for_each(functs.begin(), functs.end(), boost::bind(boost::apply<void>(), _1, x, y));
Здравствуйте, Alexander G, Вы писали:
AG>Здравствуйте, Wody, Вы писали:
W>>Не могу сообразить, как сделать это через for_each:
W>>W>>int x = something1;
W>>int y = something2;
W>>typedef boost::function2<void, int, int> F;
W>>typedef std::list <F> Functions;
W>>Function functs;
W>>//добавили несколько функций-членов классов в functs (boost::bind):
W>>for(Functions::iterator i = functs.begin(); i != functs.end(); ++i)
W>> (*i)(x, y);
W>>
W>>Как сделать без цикла?
AG>std::for_each(functs.begin(), functs.end(), boost::bind(boost::apply<void>(), _1, x, y));
То, что нужно! Спасибо.
Здравствуйте, Alexander G, Вы писали:
AG>std::for_each(functs.begin(), functs.end(), boost::bind(boost::apply<void>(), _1, x, y));
Или используя Boost.Lambda:
std::for_each(functs.begin(), functs.end(), bind(boost::lambda::_1, x, y));