AVR-GCC中的C++标准合规性

dfty9e19  于 11个月前  发布在  其他
关注(0)|答案(2)|浏览(109)

我正在学习Arduino编程,但我有相当扎实的C背景,这意味着我非常失望地发现我不能使用C标准库。我一直在寻找确切的原因,到目前为止,唯一合理的解释是AVR-GCC不符合 C++ 标准。
现在,我知道大多数编译器都与标准有微小的偏差,但我认为AVR-GCC与GCC,Clang或我以前使用过的任何其他编译器之间一定有很大的区别。比如一些非常重要的功能完全缺失,我不能使用std::vector,一定有一个很好的理由。它太有用了,不能无缘无故地放弃。
那是什么AVR-GCC方言中的巨大漏洞是什么使得C++标准库在Arduino上无法工作?我问这个问题不仅仅是出于好奇,因为如果语言中存在巨大漏洞,那么我需要在我陷入一些我没有预料到的未定义行为之前了解它们。

at0kjp5o

at0kjp5o1#

我只是在尝试在一个结构中使用一个灵活的数组(可变大小的数组)时遇到了问题。没有编译器的抱怨,但它就是不起作用。我不得不改变使用一个指向结构外部定义的数组的指针。

1sbrub3j

1sbrub3j2#

AVR-GCC是clearly the work of hobbyists。基本上,没有人愿意承担编写标准库实现的艰苦工作。编写标准库对于桌面平台来说不是一件小事,Arduino有限的功能只会使它变得更加困难。

相关问题