Что это
Низкоуровневый язык программирования с прямым доступом к железу — максимальная производительность ценой большей сложности разработки.
Как используем
Прошивки для микроконтроллеров (ESP32) и расчёты, где счёт идёт на микросекунды. Держим поведение идентичным Python-версии через общий протокол и автоматическую сверку в CI.
Где C++ нужен бизнесу
- Расчёт должен встраиваться в программу производства без внешних зависимостей и серверов.
- Важны время и точность: поток звука, обработка сигнала.
- Код должен работать на железе с ограниченными ресурсами, например на микроконтроллере.
Как мы это используем
- Расчёты для производства. Для производителя картонной упаковки написали библиотеку на C++17: по внутренним размерам и толщине картона она считает заготовку по стилям FEFCO 0200, 0201 и 0203 и раскладку на листе. Внешних зависимостей нет, нужен только компилятор и CMake, собирается на Linux, macOS и Windows.
- Звук в Android. В OshaPlay на C++ через NDK написаны поток на USB-ЦАП с кольцевым буфером и собственный ресемплер с искажениями ниже −130 дБ.
Расчётные сервисы для производства — в разделе Автоматизация.
Типичные проблемы
- Приближения нужно сверять с производством. Припуск на биговку в библиотеке принят равным толщине картона — это приближение, его нужно сверить с оснасткой конкретного завода.
- Ошибочные данные. Библиотека отклоняет неверный ввод с сообщением и кодом возврата 1, а не рисует неправильный чертёж.
- Сложнее сопровождать. C++ дороже в разработке, поэтому берём его только там, где без него не обойтись.
Когда это не нужно
Для бота, сайта или интеграции C++ избыточен: Python или Go решают те же задачи быстрее и дешевле.