лямбда-функции в vs2010
От: x-code  
Дата: 22.05.09 07:46
Оценка:
Дайте пожалуйста работающий в VS2010 пример объявления и использования лямбда-функций, желательно без stl и boost. У меня с ходу что-то не получается, компилятор ругается на синтаксис
Re: лямбда-функции в vs2010
От: Сергей Мухин Россия  
Дата: 22.05.09 07:49
Оценка:
Здравствуйте, x-code, Вы писали:

XC>Дайте пожалуйста работающий в VS2010 пример объявления и использования лямбда-функций, желательно без stl и boost. У меня с ходу что-то не получается, компилятор ругается на синтаксис


здесь
What's New in Visual C++ 2010
---
С уважением,
Сергей Мухин
Re: лямбда-функции в vs2010
От: Alexander G Украина  
Дата: 22.05.09 08:21
Оценка:
Здравствуйте, x-code, Вы писали:

XC> желательно без stl


Можно подумать, что при подходе "без STL и Boost" они сильно нужны.
Ну разве что сделать скоп-гард.
Русский военный корабль идёт ко дну!
Re[2]: лямбда-функции в vs2010
От: Сергей Мухин Россия  
Дата: 22.05.09 08:46
Оценка: +2
Здравствуйте, Alexander G, Вы писали:

AG>Здравствуйте, x-code, Вы писали:


XC>> желательно без stl


AG>Можно подумать, что при подходе "без STL и Boost" они сильно нужны.

AG>Ну разве что сделать скоп-гард.

Вы как-то очень повязаны к конкретным тулам.

Безусловно лямбда ф-ии нужны и без них.

Я, например, много использую их (правда на другом языке ).
---
С уважением,
Сергей Мухин
Re[2]: лямбда-функции в vs2010
От: x-code  
Дата: 22.05.09 09:41
Оценка:
Здравствуйте, Alexander G, Вы писали:

AG>Здравствуйте, x-code, Вы писали:


XC>> желательно без stl


AG>Можно подумать, что при подходе "без STL и Boost" они сильно нужны.

AG>Ну разве что сделать скоп-гард.

Вопрос не в том как их реально использовать и где они нужны... до реального использования дело еще не скоро дойдет.
Мне просто интересно как они устроены, нюансы синтаксиса и т.д. В частности, я хочу как минимум объявить функцию, аргументом которой была-бы лямбда-функция.
Re[3]: лямбда-функции в vs2010
От: Alexander G Украина  
Дата: 22.05.09 10:18
Оценка:
Здравствуйте, x-code, Вы писали:

XC> В частности, я хочу как минимум объявить функцию, аргументом которой была-бы лямбда-функция.


По идее 3 способа, 3й только для лямбд, захватывающих всё по сссылке ([] или [&] , для лямбд захватывающих не всё по ссылке тип не опеределён). Бету уже снёс, так что проверить второй и третий не могу, первый у меня работал.

1.
template<typename T>
void f(T f);

2.
void f(std::function< void (void) > f);

3.
void f(std::reference_closure< void (void) > f);
Русский военный корабль идёт ко дну!
Re: лямбда-функции в vs2010
От: byleas  
Дата: 22.05.09 20:06
Оценка: 19 (3) :))) :))) :))) :))
Здравствуйте, x-code, Вы писали:

XC>Дайте пожалуйста работающий в VS2010 пример объявления и использования лямбда-функций, желательно без stl и boost.

int main()
{
  [](){}();
  []{}();
  []{[](){}();}();
}
Re: лямбда-функции в vs2010
От: Kingofastellarwar Украина  
Дата: 22.05.09 21:11
Оценка:
а кто-то может показать как в новом c++ можно сделать правильный c#-подобный делегат?
т.е. обычное событие с подписчиками.
как теперь это делать правильно?
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года. (с) Эксперт, авторитет и профессионал из 1957 г.
Re[2]: лямбда-функции в vs2010
От: Аноним  
Дата: 23.05.09 08:14
Оценка:
Здравствуйте, Kingofastellarwar, Вы писали:

K>а кто-то может показать как в новом c++ можно сделать правильный c#-подобный делегат?

K>т.е. обычное событие с подписчиками.
K>как теперь это делать правильно?

Через Boost.Signals2

В новом C++ события с одним обработчиком (как в Delphi), а не с подписчиками.
Re: лямбда-функции в vs2010
От: tonykent  
Дата: 23.05.09 09:39
Оценка:
Здравствуйте, x-code, Вы писали:

XC>Дайте пожалуйста работающий в VS2010 пример объявления и использования лямбда-функций, желательно без stl и boost. У меня с ходу что-то не получается, компилятор ругается на синтаксис


Вот моя заведённая на MS бага бага. Странно, что ИМЕННО ЛЯМБДЫ они не оттестили нормально. Вообще бета сырая какая-то. Торопились видимо. А лямбды это вообще супер. Тащусь теперь просто, особенно с PPl.
Re[3]: лямбда-функции в vs2010
От: Kingofastellarwar Украина  
Дата: 23.05.09 10:13
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Kingofastellarwar, Вы писали:


K>>а кто-то может показать как в новом c++ можно сделать правильный c#-подобный делегат?

K>>т.е. обычное событие с подписчиками.
K>>как теперь это делать правильно?

А>Через Boost.Signals2


А>В новом C++ события с одним обработчиком (как в Delphi), а не с подписчиками.


ну да с одним, в контейнер сами запихнём. Просто я сам использую в качестве сигнала эти извраты шаблонные, но они мне не нравятся потому что на один вызов делегата делают по 2-3 вызова и еще кучу разыменований. Хочу как поинтер на функцию и не медленнее.
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года. (с) Эксперт, авторитет и профессионал из 1957 г.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.