История изменений
Исправление ncrmnt, (текущая версия) :
В основном, за счёт constexpr'ов, но и шаблончики иногад встречаются.
вполне себе обходится макросами. Да, это не STL, но хватает. Зато переносимо
А вы таки не умеете С++
Скорее Вы в С. В случае avr у С++, если не считать отсутствия exception'ов, операторов new и delete есть несколько очень неприятных особенностей. В первую очередь это дикий оверхед на вызов метода класса, из-за которого код быстро пухнет. RTFM как там еще можно в колено выстрелить.
Или вычислить предделитель для USART?
Например, макросами из avr-libc, это делается в компайл-тайме элементарно:
#define BAUD 9600
#include <util/setbaud.h>
UBRRH = UBRRH_VALUE;
UBRRL = UBRRL_VALUE;
Для меня шоустоппером в плане С++ является то, что частенько в хозяйстве юзаю 8051 (nRF24LU1p, nRF24LE1) и пара либ моих у меня компилиться и под 8051 при помощи sdcc и под avr gcc. А под 8051 С++ нет и не планируется. Да и вообще поддержка С++ на разных мк даже тем же gcc очень рознится, потому завязываться не хочется. А у китайцев сейчас на 8051 есть весьма любопытные камешки, в первую очередь специализированные и дешевые.
Исправление ncrmnt, :
В основном, за счёт constexpr'ов, но и шаблончики иногад встречаются.
вполне себе обходится макросами. Да, это не STL но хватает.
А вы таки не умеете С++
Скорее Вы в С. В случае avr у С++, если не считать отсутствия exception'ов, операторов new и delete есть несколько очень неприятных особенностей. В первую очередь это дикий оверхед на вызов метода класса, из-за которого код быстро пухнет. RTFM.
Или вычислить предделитель для USART?
Например, макросами из avr-libc, это делается в компайл-тайме элементарно:
#define BAUD 9600
#include <util/setbaud.h>
UBRRH = UBRRH_VALUE;
UBRRL = UBRRL_VALUE;
Для меня шоустоппером в плане С++ является то, что частенько в хозяйстве юзаю 8051 (nRF24LU1p, nRF24LE1) и пара либ моих у меня компилиться и под 8051 при помощи sdcc и под avr gcc. А под 8051 С++ нет и не планируется. Да и вообще поддержка С++ на разных мк даже тем же gcc очень рознится, потому завязываться не хочется.
Исходная версия ncrmnt, :
В основном, за счёт constexpr'ов, но и шаблончики иногад встречаются.
вполне себе обходится макросами. Да, это не STL но хватает.
А вы таки не умеете С++
Скорее Вы в С. В случае avr у С++, если не считать отсутствия exception'ов, операторов new и delete есть несколько очень неприятных особенностей. В первую очередь это дикий оверхед на вызов метода класса, из-за которого код быстро пухнет. RTFM.
Или вычислить предделитель для USART?
Например, макросами из avr-libc, это делается в компайл-тайме элементарно:
#define BAUD 9600
#include <util/setbaud.h>
UBRRH = UBRRH_VALUE;
UBRRL = UBRRL_VALUE;
Для меня шоустоппером в плане С++ является то, что частенько в хозяйстве юзаю 8051 (nRF24LU1p, nRF24LE1) и пара либ моих у меня компилиться и под 8051 при помощи sdcc и под avr gcc. А под 8051 С++ нет и не планируется. Да и вообще поддержка С++ на разных мк даже тем же gcc очень рознится, потому завязываться не хочется.
И arduino можно было бы сделать эффективно, чтобы вычислять все в компилтайме и иметь отличную гибкость и производительность при схожем внешнем виде для кодера. Но ведь и так работает, пипл хавает :)