C++ 是C++;Arduino完全支持标准库?

C++ 是C++;Arduino完全支持标准库?,c++,arduino,c++-standard-library,C++,Arduino,C++ Standard Library,不是询问,而是询问micro控制器上使用的整个标准库 我还没有一个ARDUINO板来执行代码,正如标题所说,我很好奇C++标准库是否完全支持ARDUINO,并且已经是ARDUNO IDE的一部分。毫无疑问,标准库可能是最高效、充分测试和资源最少的公开C++代码,它将使像ARDUINO这样的微控制器的代码变得更容易。 或者,不知何故,我错过了Arduino/micro控制器的要点?因为它们的资源非常有限,大多数代码必须完全针对特定的功能进行定制,而不是通用的或模板化的 如果标准库不是Arduino

不是询问
,而是询问micro控制器上使用的整个标准库


我还没有一个ARDUINO板来执行代码,正如标题所说,我很好奇C++标准库是否完全支持ARDUINO,并且已经是ARDUNO IDE的一部分。毫无疑问,标准库可能是最高效、充分测试和资源最少的公开C++代码,它将使像ARDUINO这样的微控制器的代码变得更容易。 或者,不知何故,我错过了Arduino/micro控制器的要点?因为它们的资源非常有限,大多数代码必须完全针对特定的功能进行定制,而不是通用的或模板化的


如果标准库不是Arduino IDE的一部分,那么如何包含特定的库,例如

Arduino与其他嵌入式系统项目有很大的不同。首先,它使用自己的基于C/C++的。另一方面,您正在处理令人难以置信的专业软件,您不太可能需要对
进行大量抽象。与之相反,比如说自制内核,在这里您处理的是桌面级硬件和标准库辅助开发。此外,自制内核最终希望成为“自托管”,也就是说,它们可以将GCC和libstdc++移植到用户空间。同样,这是在Arduino环境中你不会看到的

现在,当你谈论与Arduino一起出现的问题时,这是一个完全不同的故事。这些都是用C或C++编写的,可以从移植的标准库中获益,但不太有帮助。移植STL并不是一件容易的事情,而且确实如此。大多数功能远远超出了必要的范围-您真的需要
来读取或写入端口中的字节吗?然后从开发人员的角度考虑成本和复杂性:Arduino开发人员将承担这项艰巨的(双关语不是有意的)任务来实现它,并且在大部分资源将被闲置或破坏时支持它(想想自定义分配器)

还有最后一点,有很多不同规格的Arduino板。标准库是建立在现有C库之上的抽象。在某一点上,您必须认真地为C库和运行时编写代码,使标准库本质上不可移植(想想libstdc++-arm none-eabi-newlib)


现在,如果您对此不满意,您仍然可以在为Arduino编写自己的库时按照他们的说明移植STL的一个子集。

这似乎根本不是重复的。它根本没有提到Arduino字符串库,并且具有完全不同的上下文和范围。“Arduino”有点宽泛。这就像询问微控制器上是否有标准库。您需要了解是否有SDK可用,或者是否有人为您的特定平台移植了标准库。“标准库可能是最有效的”,事实上,它不是。@nonreature0714供参考:在库管理器中查看my
BitBool
lib,它像数组一样管理位集。Arduino Due工具集有标准库,而Arduino Uno没有。但是有人修复了这个问题(这只是Github上几个这样的项目中的一个):很好的答案,这就是我想要的,谢谢!作为一个补充的评论,即使是微控制器制造商也经常不供应C++标准库的实现。如果他们这样做了,将很容易融入Arduino开发环境。例如:Atmel微控制器在很多ARDUIO板中使用,这里有一个来自Atmel的帖子,它缺少对各种C++特性的支持,包括使用Atmel的开发基础设施的标准库:根本不,ARDUNO不使用它自己的语言。ARDUNO使用标准C++和标准工业级C++编译器(GCC)。它不是黑魔法,也与任何其他嵌入式项目没有任何实质性区别。最主要也是最大的区别是,他们确实设法降低了开发简单嵌入式应用程序的门槛。完全错误。它根本不用自己的语言。它使用编译的HEX文件,通常是C++和GNU和ARDUINO工具链。在@ Mark Amery的防御中:ARDUINO文档讲述了这样的虚假叙述。他们把Ardunio说成是语言。。。天知道他们为什么和怎么到那里的。