Re[3]: Лямбда - получить свой this
От: Videoman Россия https://hts.tv/
Дата: 02.02.22 07:23
Оценка: +1
Здравствуйте, T4r4sB, Вы писали:

TB>И по сути указатель на лямбду передаётся два раза — потому что вызов лямбды это вызов метода класса, а метод класса и так передаёт первым параметром указатель на экземпляр класса. То есть это как object.foo(object, 1, 2, 3) в вызове не-статичного метода. Ну не уродство?


В принципе, вот
Автор: sergii.p
Дата: 01.02.22
нормальное решение в части стирания типа, которое отлично оптимизируется в релизе. Опиши полностью задачу которую ты решаешь, тогда можно будет что-то конкретно посоветовать. Рекомендуемый подход для рекурсии вызова такой:
using it = typename std::vector<int>::iterator;

std::function<int(it, it)> sum = [&sum](it begin, it end) {
    return (begin != end) ? sum(begin + 1, end) + *begin : 0;
};
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.