Re: Лямбда - получить свой this
От: Videoman Россия https://hts.tv/
Дата: 01.02.22 21:50
Оценка: 1 (1) +1
Здравствуйте, T4r4sB, Вы писали:

TB>Как известно, лямбда это сахарок над объектов, у которого перегружен оператор ().

TB>Но как получить ссылку на этот объект внутри этого оператора? Бывает полезно, в том числе для рекурсивного вызова.

Может быть что-то такое:
auto sum = [](auto& func, auto begin, auto end)->int {
    return (begin != end) ? func(func, begin + 1, end) + *begin : 0;
};

std::vector<int> v{ 1, 2, 3 };
std::cout << sum(sum, v.begin(), v.end());

Правда уродский синтаксис вызова, но там уже всё уродское, на мой взгляд
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.