Arduino — C ++ Стандарт соответствия в AVR-GCC

Я учусь программировать свое Arduino, но у меня довольно солидный опыт в C ++, а это значит, что я был очень разочарован, обнаружив, что не могу использовать стандартную библиотеку C ++. Я пытался выяснить, почему это так, и пока единственное правдоподобное объяснение состоит в том, что AVR-GCC не соответствует стандарту языка C ++.

Теперь я знаю, что большинство компиляторов имеют незначительные отклонения от Стандарта, но я думаю, что должно быть что-то действительно большое, что отделяет AVR-GCC от GCC, Clang или любого другого компилятора, который я использовал ранее. Как какая-то чрезвычайно важная особенность, которая полностью отсутствует, или что-то в этом роде. Должна быть веская причина, почему я не могу использовать std::vector например. Это просто слишком полезно, чтобы оставить без причины.

Так что же это? Что является гигантской дырой в диалекте AVR-GCC, из-за которой стандартная библиотека C ++ не работает на Arduino? И я спрашиваю об этом не только из любопытства, потому что, если в языке есть гигантские дыры, мне нужно знать о них, прежде чем я начну впадать в какое-то неопределенное поведение, которого я не ожидал.

5

Решение

AVR-GCC является явно работа любителей. По сути, никто не хочет выполнять тяжелую работу по написанию реализации стандартной библиотеки. Написание стандартной библиотеки не является тривиальной задачей для настольных платформ, а ограниченные возможности Arduino только усложняют ее.

-3

Другие решения

Других решений пока нет …