LINUX.ORG.RU

История изменений

Исправление 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 можно было бы сделать эффективно, чтобы вычислять все в компилтайме и иметь отличную гибкость и производительность при схожем внешнем виде для кодера. Но ведь и так работает, пипл хавает :)