Здравствуйте, SCRABER, Вы писали:
SCR>Здравствуйте, Сыроежка, Вы писали:
С>>void fn( const std::list<pf> &l, int x )
С>>{
С>> std::for_each( l.begin(), l.end(),
С>> [&x]( pf f ){ f( x ); } );
С>>}
С>>[/ccode]
SCR>У меня вот это не компилируется ?????
SCR>Embarcadero C++ Builder XE2.
Мораль: давно известно, что продукты Borland никогда не соответствовали стандарту, отставали по внедрению новых положений стандарта и имели заоблочную цену!
Сейчас Embarcadero проводит агрессивную рекламную компанию по протолкиванию своих средств разработки XE2. Теперь буду знать, что не следует покупать их продукты не только изз-за завышенной цены (у них upgrade идет по цене, дороже нового продукта!), но также из-за того, что их компилятор не поддерживает новый стандарт С++. То есть это все равно, что лпатить деньги за то, что уже бесполезно.
Скорей ввего ваш компилчятор не поддерживает лямбда-выражения. если бы вы указали сообщение об ошибке, можно было бы более точно определить причину, почему код не компилируется. Но в любом случае лямбда-выражение можно заменить функциональным объектом.