Re[3]: STL алгоритмы: for_each_if
От: ArtDenis Россия  
Дата: 09.02.04 18:11
Оценка:
Здравствуйте, lomezych, Вы писали:

L>Да, блин, сорри... писал в попыхах... опечатался...На самом деле надо вот как:

L>min и мах — это как раз подставляемые значения.. а для выяснения, входит ли в диапазон — это как раз должно быть значение возвращаемое Foo::mf.
Тогда нужно оставить оригинальный in_range (как в самом первом посте)

L>Значит теперь усложним задачу. Получилось так, что надо предварительно надо перед сравнением переделать. Допустим есть функция (может быть как и член Foo, так и некая static).


Вот так:

  for_each_if
  (
      sequence.begin(),
      sequence.end(),
      boost::mem_fn(&Foo::generator),
      boost::bind
      (
        in_range<bar>(min, max),
        boost::bind( Foo::barTobaz, boost::bind(&Foo::mf, _1, value_passed_to_Foo_mf_function) )
      )
  );


IMHO, три вложенных bind — это извращение. Лучше напиши обычный цикл вместо for_each_if с нормальными вызывами всех функций.

PS: сейчас кто-нибудь придёт и напишет тебе вариант с boost::lambda, но это будет ещё большим извращением.
... << RSDN@Home 1.1.2 stable >>
[ 🎯 Дартс-лига Уфы | 🌙 Программа для сложения астрофото ]
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.