我正在为嵌入式系统开发一个大型项目。
该项目是一个库和一些二进制文件,必须将它们集成到客户的代码/解决方案中。
因此,它必须尽可能地独立于OS /平台。
到目前为止,我们一直在开发嵌入式Linux,没有任何问题。但是,在不久的将来非基于Linux的平台也有可能加入其中。

为了说明我们正在使用的平台类型,它们必须能够运行要求苛刻的模块,例如Java虚拟机。

我不确定会出现哪种平台以及它们会提供哪种编译器。
所以我有点担心使用高级C++ future 或库可能会引起很多麻烦。我主要是想避免由于这种情况而导致不兼容的可能性。

我们正在重构我们解决方案的一些C++模块。它们确实很棘手,并且智能指针支持会有所帮助。
起初,我考虑过制作自定义的智能指针包,但对我来说似乎有点冒险(这里的错误会引起极大的头痛)。
所以我考虑使用boost的智能指针。

你们认为如果我使用Boost的智能指针,将来会遇到麻烦吗?

我试图使用bcp提取boost的智能指针包,但是随之而来的还有很多其他事情。大约4Mb的代码。
提取的目录为:

config/compiler
config/stdlib
config/platform
config/abi
config/no_tr1
detail
smart_ptr
mpl (and subdirs)
preprocessor (and subdirs)
exception (and subdirs)
type_traits (and dubdirs)

对我来说,这似乎不是很容易移植(但是我可能错了)。

你们怎么看?

非常感谢您的帮助。

最佳答案

较新的编译器包括shared_ptr作为C++ 11 / TR1。如果您有一个相当现代的编译器(由于C++ 11而确实想要拥有),那么它应该没有问题。

如果您现在还没有一个不能使用TR1的客户,请继续使用它。您可以在 future 的客户到达时与他们打交道-YAGNI在这里适用,并且智能指针非常重要。和C++ 11功能一样,例如移动语义。

但是,如果您不顾一切,可以滚动自己的shared_ptr-概念并不特别复杂。

关于c++ - 嵌入式C++项目-支持智能指针。可能的可移植性问题?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11210111/

10-08 22:02