【发布时间】:2010-10-19 11:29:52
【问题描述】:
我正在开发一个现有的嵌入式系统(内存有限,闪存有限, ...) 带有 RT 操作系统。所有数据结构都有固定的大小并被分配 在“编译时”,因此适用于 RT。没有动态内存 分配。编程语言是 C++,但没有可用的 STL。一世 喜欢替换一些数据结构,尤其是 LinkedList、Vector 和 带有一些更通用变体的地图。
到目前为止,我见过的最接近的是以下框架: http://apfw.sourceforge.net/。恕我直言,最大的缺点是 大小为 N 的 LinkedList,来自 T 的默认构造函数被调用 N 次。一种 更好的类应该静态分配 sizeof(T)*N 个字节。
有人知道我的图书馆有上述所有限制吗?
【问题讨论】:
-
它很可能在图像中静态分配存储。但是 C++ 需要调用 ctors。您还希望它如何初始化 T 个实例?
-
如果此框架支持自定义分配器,您可以尝试编写自己的分配器。
-
@sellibitze。不支持自定义分配器。
-
@wilx。首先调用字节构造函数。稍后通过放置新对象添加对象。至少这是我脑子里想的第一件事,如果我必须实现一些东西的话。
-
@wilx:
std::vector这样做的方式相同。它的容量都是原始字节,必要时会调用构造函数(通过放置 new)。
标签: c++ data-structures memory-management real-time