Из теоретически-эстетического интереса, можно ли код типа Код (Text): .... int counter = 0; for_each(widths.begin(), widths.end(), boost::bind(&CResultListBox::SetColumnWidth, &m_listBox, boost::bind(increment(), boost::ref(counter)) ,_1)); .... написать, только чтобы работал?) Да, и только не создавать своих функторов, юзая stl\boost ?
Velheart напиши прототип CResultListBox::SetColumnWidth и тип элементов контейнера и вообще, что ты хочеш сделать-то?
GoldFinch Прототип: BOOL SetColumnWidth(_In_ int nCol, _In_ int cx); в контейнере -- инты, хочу, чтобы первый параметр был counter по ссылке, который бы заодно инкрементировался в каждой итерации for_each =) , а второй -- соответствующий элемент контейнера
но если очень хочется именно std::for_each, то Код (Text): using namespace boost::lambda; int counter = 0; std::for_each(widths.begin(),widths.end(), bind(&CResultListBox::SetColumnWidth, &m_listBox, var(counter)++, _1) );
GoldFinch Сенкс! =) Последнее -- именно то, что хотел, бустовский форич несомненно удобней, интерес скорее теоретический был, как-то я пропустил var, когда пытался сам сделать)
Да я boost::lambda::bind тож пытался, чтобы как-нить выражение составить, но почему-то зациклился на ref, а var в бустовских доках просмотрел =)