我一直在使用stlport来开发基于wince的自定义操作系统,但是从现在开始我正在考虑使用windows提供的stl。我从功能上读到它们并没有什么不同,所以目前重要的是我的图像大小。不幸的是,我不能给他们两个尝试像第一次使用stl并制作运行时图像然后使用stlport,然后比较两个图像的大小,因为我有很多其他问题,我需要解决,以便成功构建OS。因此,我想得到一个专家的想法:
您认为哪一个更轻量级?我知道如何附加,加载等stlport但我不太确定STL。我查看了STL标题,我看到的只有成千上万的内联函数。但这就是全部吗?我需要确定一下。 STL是否链接了任何其他库,或者只是包含标题并使用这些内联函数?
最佳
Ps:我正在使用VS2012并在wec2013上工作
Ps2:我知道STL和stlport代表什么以及如何使用它们构建应用程序。我的实际问题是哪一个会占用更少的内存,在HDD上使用更小的内存? (考虑像stlport这样的东西是lib,但stl不是等等。)
答案 0 :(得分:5)
我认为STL是指编译器的标准库。这是一个常见的误解,因为STL是一个被提出并被语言接受的库的原始名称,但它已经从中演变而来。考虑到这一点,问题就变成了:
我应该使用我的编译器提供的标准库还是使用stlport [或其他替代方案]?
答案是它将取决于您的使用案例,但好处是只要您使用标准中定义的库(即没有扩展名),那么您应该能够轻松地从建筑物切换到或者另一个,这意味着你可以自己测试一下。您还可以使用不同的编译器标志测试构建。这在VS中特别重要,因为默认情况下,库使用已检查的迭代器,这些迭代器适用于调试,但代价是额外的内存和处理。
答案 1 :(得分:3)
STLPort
旨在用于由于某些原因而未提供STL的平台(例如,没有C ++异常支持的嵌入式平台),或者本机STL支持已过时。
因此,通常您不需要替换原生STL。应该有充分的理由在项目中使用STLPort。根据我的经验,我将它用于一些嵌入式DSP平台(没有原生STL),并且用于UEFI平台(不是真正的嵌入式,但也没有本机STL,运行时也不支持C ++异常)。
STLPort
是高度可定制的(您可以禁用异常,流等),并且几乎可以在任何具有基本C ++支持的平台上使用。