Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Лямбды и захват переменных - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Автопоэт http://www.cyberforum.ru/cpp/thread1565603.html
Здравствуйте. Есть словарь со словами и ударениями к этим словам обозначены символом ' . И надо из этих слов составить двустийшее по принципу ямб или хорей. Слабо представляю себе это. По идее для...
C++ Массив пикселей RGB в JPEG Всем доброго времени суток! Пишу программу под МК на С/С++. На входе имею массив пикселей в формате RGB565 (2 байта/пиксель). На выходе нужно сформировать JPEG-файл (первоначально без сжатия) и... http://www.cyberforum.ru/cpp/thread1565600.html
C++ Чем _Get_pointer_type отличается от обычного получения типа указателя
При попытке более детально понять работу стандартных контейнеров в STD столкнулся с немалым количеством головоломок. вот одна из них. typedef typename _Get_pointer_type<_Alloc>::type pointer; ...
C++ Необходимо протестировать костыль. Конвертирование Glib::ustring в sf::String
Есть строка Glib::ustring, пытался её конвертировать в sf::String, и вроде бы всё работает без особых костылей, но как добрался до кириллицы, нифига ничего не работает. Придумал такой костыль:...
C++ Динамическая списочная структура, содержащая объекты классов, связанных наследованием http://www.cyberforum.ru/cpp/thread1564885.html
В общем. Есть базовый класс и 2 класса наследника. Нужно создать динамическую структуру(пусть это будет односвязный список) в который можно добавлять или удалять объекты любого из 3-х классов. Я...
C++ Протестируйте функцию сортировки контейнера У set контейнера странная сортировка, решил написать функцию которая увеличивала на одну единицу значение вектора. Вектор выступает как "виртуальное целое число". Так как стандартный обход char от 0... подробнее

Показать сообщение отдельно
hoggy
6653 / 2841 / 486
Регистрация: 15.11.2014
Сообщений: 6,294
Завершенные тесты: 1
29.10.2015, 20:53
Цитата Сообщение от Renji Посмотреть сообщение
Лямбды могут захватывать переменные через [value1,value2]{}. Вопрос: а куда, собственно, эти переменные захватываются - в статический буфер общий для всех вызовов лямбды или в локальный буфер формируемый под каждый вызов и передающийся лямбде на манер this?
лямбда - это обычный класс-функтор.
если лямбда хапанула контекст,
то компилятор сгенерирует функтор с данными-членами.
которые и будут хранить этот контекст.

итого:
никакой разницы между лямбдой,
и как если бы вы сами вручную этот функтор приготовили.

просто удобнее.

Цитата Сообщение от Renji Посмотреть сообщение
Проблема в том, что std::function ничего про эти захваченные переменные не знает
std::function - это всего лишь тонкая обертка над функторами.
ей без разницы на что нацеливаться.
главное, что бы оно могло вызваться согласно протоколу
(типу функции указанному в параметре шаблона)

поэтому, она не заморачивается тем, что под капотом функтора.
просто дергает его оператор()
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru