Re[4]: C++11, передача Lambda-выражения как параметра
От: vintch  
Дата: 12.01.12 17:18
Оценка:
Здравствуйте, k06a, Вы писали:

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


V>>Идея вполне хороша, вот только — какого типа должна быть ссылка?


K>Я имел ввиду написать так:


K>
K>typedef void (*func_type)();

K>void SomeFunction(func_type & function)
K>{
K>   function();
K>}
K>


Такая функция не сможет принять аргументом замкнутую лямбда-функцию по той простой причине, что её тип не будет соответствовать void ().

K>И вообще не проще ли писать шаблоном вместо тайпдефа функции:


K>
K>template<typename T>
K>void SomeFunction(T & function)
K>{
K>   function();
K>}
K>


м.. Вы читали мой первый пост? Мне нужно любую замкнутую лямбда-функцию (каждая из которых будет иметь одинаковые параметры и тип возвращаемого значения),
которая по-определению, каждая, будет иметь свой тип, привести к некоему универсальному типу, позволяющему её вызвать.
Ну то есть в сущности мне нужно её делегировать. При решении этой задачи через функцию-шаблон, я просто получу N инстанированных шаблонов для N лямбда-функций и соответственно N типов функций. И как мне их сложить в массив, например?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.