Добрый день, жители хабра. Данный пост будет посвящен программированию на C++, и использованию constexpr объектов с целью повышения уровня удобства и одновременно оптимизации кода с точки зрения размера и производительности. В процессе работы над одним из проектов, задумался: "нельзя ли сделать удобный доступ к GPIO портам на STM32, и при этом сделать его оптимальным по размеру кода и производительности". Что я хотел получить: Читать далее
Уважаемые жители Habr-а, В данной статье, речь пойдет о доступе к GPIO, и другим регистрам, используя C++. Несколько лет назад, я подготовил статью, о том, как можно используя constexpr-клаcсы, серьезно оптимизировать доступ к GPIO-порту, таким образом, чтобы команда "PA0.set()" - превращалась в…
Сегодня мы поговорим о том, как constexpr, consteval, и constinit позволяют реализовывать компиляцию на этапе выполнения. Компиляция на этапе выполнения позволяет ускорить выполнение кода за счет выполнения расчетов на этапе компиляции, а не в рантайме.constexpr делает возможным вычисление…
Введение. Все, кто хорошо знаком с современным С++ слышал, что начиная с С++11 в стандарт был введен спецификатор constexpr, при помощи которого можно проводить лимитированные compile-time вычисления. В последующие стандарты были добавлены if constexpr и constexpr lambdas которые в некоторой степени снимают ограничения и помогают писать код с compile time вычислениями. Сегодня мы поговорим об случайной кодогенерации в compile time. Читать дальше →