ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
22 мая
1161512 Топик полностью
evgeniy1294 (06.01.2022 01:12, просмотров: 220) ответил VladislavS. на Вот когда БУДЕТ поддерживать, тогда и будем обсуждать. А пока С++20 для кортексов это только GCC. IAR это не только крутой компилятор. Вроде смотришь листинги - ничего особенного, но работает код быстрее. Я думаю, он учитывает особенности исполнения кода разными ядрами (конвейеры, кэши, предвыборки и т.д.), иначе трудно объяснить почему код выполняется быстрее. GCC делает код добротный, агрессивно оптимизированный, но по какому-то клише, которое в целом чуть медленнее. На
Предлагаю обсудить тезисно: 

* А пока С++20 для кортексов это только GCC - Стандарт мне понравился, завезли довольно много всего вкусного.

- Модули - изначально проталкивались крупными конторами типа майкрософта и гугла, потому как их монструозный софт собирается часами + решает проблемы с зависимостями. Нововведение отличное, хотя для эмбеддета не является необходимым. Просто объёмы кода не те, да и архитектура гораздо проще.

- <=> - клевая штука, уже пользовался, уменьшает количество писанины.

- Концепты - наконец-то похоронили SFINAE. Шаблоны я люблю, поэтому концепты уже пробовал, делал stl-совместимые контейнеры на них. В целом, часто можно обойтись static_assert, хотя все зависит от стиля кода. Возможно потому, что мне пока не приходилось писать шаблоны, в которые пользователь может пихать какие-то свои кастомные типы, не наследованные или не являющиеся специализацией моих.

- Ranges - прикольная штука, но не дешевая, для эмбеддета не тестировал. Интересно, смогут ли впихнуть их в cuda?

- Корутины - прикольно для всякой асинхронщины, пока не понял, как её применить для эмбеддета. Саму концепцию я использую в lua-скриптах для описания сценариев управления оборудованием (разные режимы тестирования, обучения и т.д задействуют одно и тоже оборудование, но по разному), но это lua-корутины. Будет прикольно, если с++ корутины можно будет пропихивать через qt-шные сигналы, хотя в большом программировании им и так применений масса.

- Календарь - наконец-то. Непонятно, насколько он жирный, так что в эмбеддете пока без него, хотя есть пара идей для применения.

- Ну и куча синтакчического сахара в ядре, вроде обновления лямбд. Просто прикольно.

- constinit и consteval - охрененно полезное, возможно, самое полезное для эмбеддета в стандарте.


Из минусов - государство хочет AstraLinux, а компилятор из коробки поддерживает только с++17 (Astra 1.6 имеет полную поддержку только с++14). Собирать компилятор самостоятельно бесполезно - завалитесь на сертификации. Так что если ваши железки работают не сами по себе, а управляются с компа под астрой - терпите.