Разработчик С/С++
finally/final_action?
Чтож, за неявный захват я и вправду запамятовал, извиняюсь.
... а std::function, оказывается, иногда аллоцирует в куче.
Для интересующихся - как раз есть std::move_only_function (начиная с C++23), который умеет хранить объект callable в себе:
Implementations may store a callable object of small size within the std::move_only_function object.
Но весь вопрос как обычно сводится к "а какой у нас размер лямбды с контекстом?".
Порой помогает простое человеческое спасибо вписывание захватываемых объектов руками:
[&a, &b, ...](...){}
Таким образом мы логично не засасываем в захват лямбды всё подряд из контекста над ней.
Ещё помогает завернуть одну лямбду по ссылке в контекст другой, но там уже надо осторожно, в малых дозах.
За статью плюс.
О, это выглядит как хорошая тема для статьи тут, на Хабре!
Могу лишь пожать вам руку, ибо сборка под видеокарты - звучит как лёгкая степень кошмара :)
Хм, успешно работаю с большим (более 200 таргетов) проектом через CMake почти пять лет, ещё ни разу не налетал на подобное :)
Даже с учётом того что у проекта 6 разных целевых платформ.
UPD: не исключаю что подобное возможно, но это скорее тревожный звоночек для сопровождающих конфигурации проекта что что-то явно идёт не туда :)
Но я совершенно не уверен, что то приложение на C++, которое я в прошлом году собирал с CMake 3.21, соберётся и на будущий год с CMake 3.25.
Вот про CMake вообще не понял, каким боком он к способности кода к сборке через некоторое время?
А в чём сейчас проблема слинковаться и вам со статическим рантаймом?
Переход к forward declaration позволил существенно сократить время сборки проекта.
где то был коментарий, что процессор может работать 40 лет при температуре 200 градусов
finally/final_action?
Чтож, за неявный захват я и вправду запамятовал, извиняюсь.
Для интересующихся - как раз есть std::move_only_function (начиная с C++23), который умеет хранить объект callable в себе:
Но весь вопрос как обычно сводится к "а какой у нас размер лямбды с контекстом?".
Порой помогает простое человеческое
спасибовписывание захватываемых объектов руками:Таким образом мы логично не засасываем в захват лямбды всё подряд из контекста над ней.
Ещё помогает завернуть одну лямбду по ссылке в контекст другой, но там уже надо осторожно, в малых дозах.
За статью плюс.
О, это выглядит как хорошая тема для статьи тут, на Хабре!
Могу лишь пожать вам руку, ибо сборка под видеокарты - звучит как лёгкая степень кошмара :)
Хм, успешно работаю с большим (более 200 таргетов) проектом через CMake почти пять лет, ещё ни разу не налетал на подобное :)
Даже с учётом того что у проекта 6 разных целевых платформ.
UPD: не исключаю что подобное возможно, но это скорее тревожный звоночек для сопровождающих конфигурации проекта что что-то явно идёт не туда :)
Вот про CMake вообще не понял, каким боком он к способности кода к сборке через некоторое время?
А в чём сейчас проблема слинковаться и вам со статическим рантаймом?
Как общие впечатления о работе с Qt и Qt Creator?
Ну если при этом гонять к нему фреон эти 40 лет — то возможно