Отладочный вывод на микроконтроллерах: как Concepts и Ranges отправили мой printf на покой
- Tutorial
Здравствуйте! Меня зовут Александр и я работаю программистом микроконтроллеров.
Начиная на работе новый проект, я привычно набрасывал в project tree исходники всяческих полезных утилит. И на хедере app_debug.h несколько подзавис.
Дело в том, что в декабре прошлого года у GNU Arm Embedded Toolchain вышел релиз 10-2020-q4-major, включающий все GCC 10.2 features, а значит и поддержку Concepts, Ranges, Coroutines вкупе с другими, менее "громкими" новинками С++20.
Воодушевленное новым стандартом воображение рисовало мой будущий С++ код ультрасовременным и лаконично-поэтичным. И старый добрый printf("Debug message\n") в это благостное видение не очень-то вписывался.
Хотелось бескомпромиссной плюсовой функциональности и стандартных удобств!