C++标准符合AVR-GCC

Mic*_*rst 6 c++ arduino avr-gcc c++-standard-library

我正在学习编程我的Arduino,但我在C++中有相当扎实的背景,这意味着我非常失望地发现我无法使用C++标准库.我一直在四处寻找确切原因,到目前为止唯一合理的解释是AVR-GCC不符合C++语言标准.

现在,我知道大多数编译器都与标准版略有偏差,但我认为必须有一些非常大的东西将AVR-GCC与GCC,Clang或我之前使用的任何其他编译器区分开来.像一些完全缺失的重要特征,或者其他东西.例如,我必须有充分的理由不能使用std::vector.无缘无故地离开是太有用了.

那是什么?AVR-GCC方言的巨大漏洞是什么使得C++标准库在Arduino上无法工作?而且我要求的不仅仅是好奇心,因为如果语言中有巨大的漏洞,那么我需要先了解它们,然后才会陷入一些我没想到的未定义的行为.

MSa*_*ers -3

AVR-GCC显然是业余爱好者的作品。本质上,没有人愿意承担编写标准库实现的艰苦工作。对于桌面平台来说,编写标准库并不是一项简单的任务,而且 Arduino 的有限功能只会让它变得更加困难。

  • 我仍然对这个说法感到困惑:像“易失性”这样的东西是糟糕的编译器设计的证据吗?那“注册”呢?鉴于 AVR 是哈佛架构处理器,RAM 很少,但能够在 ROM 中存储数据(具有相关的各种性能成本),我不确定我是否理解您关于硬性和快速规则以及模糊语法的观点。 (3认同)
  • 你能解释一下为什么“PROGMEM”意味着“爱好者”吗? (2认同)