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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Автопоэт http://www.cyberforum.ru/cpp/thread1565603.html
Здравствуйте. Есть словарь со словами и ударениями к этим словам обозначены символом ' . И надо из этих слов составить двустийшее по принципу ямб или хорей. Слабо представляю себе это. По идее для начала следует разделить слова на слоги, а следом разделить слова по ударениям на 1,2,3… слог. Но по какому принципу брать слова я не пойму. Смогу воспринять даже на словах, код не обязательно....
C++ Массив пикселей RGB в JPEG Всем доброго времени суток! Пишу программу под МК на С/С++. На входе имею массив пикселей в формате RGB565 (2 байта/пиксель). На выходе нужно сформировать JPEG-файл (первоначально без сжатия) и записать на SD-карту. Нашел библиотеку libjpeg, которая должна уметь это делать: http://www.ijg.org/ Нужна помощь, чтобы с ней разобраться. Кто-нибудь может поделиться кодом как сделать нечто... http://www.cyberforum.ru/cpp/thread1565600.html
Long int и int : не понимаю! C++
Вот простой код на С++. Который находит количество цифр в числе . Я создаю переменную типа long int number1; . После запуска программы для проверки вывожу b , чтобы проверить чему оно равно , но ответ всегда 8! Какое бы число я не ввел! Но если поменять тип на int number 1; - Все работает! Почему long int number 1 , так влияет на переменную int b = 0; ? А если поменять на int number 1 , нет?...
C++ Чем _Get_pointer_type отличается от обычного получения типа указателя
При попытке более детально понять работу стандартных контейнеров в STD столкнулся с немалым количеством головоломок. вот одна из них. typedef typename _Get_pointer_type<_Alloc>::type pointer; переходим к объявлению template<class _Ty> struct _Get_pointer_type
C++ Необходимо протестировать костыль. Конвертирование Glib::ustring в sf::String http://www.cyberforum.ru/cpp/thread1565314.html
Есть строка Glib::ustring, пытался её конвертировать в sf::String, и вроде бы всё работает без особых костылей, но как добрался до кириллицы, нифига ничего не работает. Придумал такой костыль: sf::String convert_from_ustring (const Glib::ustring& source_string) { static std::wstringstream ss ; ss.clear() ; ss << source_string ; return sf::String(ss.str()) ; }
C++ Динамическая списочная структура, содержащая объекты классов, связанных наследованием В общем. Есть базовый класс и 2 класса наследника. Нужно создать динамическую структуру(пусть это будет односвязный список) в который можно добавлять или удалять объекты любого из 3-х классов. Я сделал односвязный список в который можно добавлять базовый класс. Но вот как реализовать возможность хранения в одном списке различных классов? #include <stdio.h> #include <iostream> #include... подробнее

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

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

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

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

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