Search
Write a publication
Pull to refresh
1
0
Александр @The_Netos

Разработчик С/С++

Send message

Чтож, за неявный захват я и вправду запамятовал, извиняюсь.

... а 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 вообще не понял, каким боком он к способности кода к сборке через некоторое время?

А в чём сейчас проблема слинковаться и вам со статическим рантаймом?

Ох, как вспомню кроссбраузерность CSS/JS для Safari, так вздрогну.
Скорее тогда уже на «выбрать конфигурацию».
Понятненько)

Как общие впечатления о работе с Qt и Qt Creator?
Про это всё я знаю, более волнует вопрос — вы изначально не следовали этим рекомендациям, а только потом спохватились в процессе оптимизации сборки?
Я больше не понял про
Переход к forward declaration позволил существенно сократить время сборки проекта.
где то был коментарий, что процессор может работать 40 лет при температуре 200 градусов

Ну если при этом гонять к нему фреон эти 40 лет — то возможно

Information

Rating
7,930-th
Location
Беларусь
Registered
Activity

Specialization

Software Developer, CMake Build Engineer
Middle
C++
C
Qt
QML
Cmake
Git
Bash
PowerShell
Linux
Cross Platform Development