是否存在boost / tr1 shared_ptr的任何与boost无关的版本

时间:2010-05-01 08:37:59

标签: c++ boost shared-ptr

我正在寻找boost / tr1 shared_ptrweak_ptrenable_shared_from_this的独立实现。

我需要:

  • 提升这些功能的独立非常小的实现。
  • 我只需要支持GCC-4.x,MSVC-2008等现代编译器,英特尔不支持MSVC6或gcc-3.3
  • 我需要根据非Copyleft LGPL兼容许可证获得许可,例如Boost / Mit / 3-clause BSD。

所以我可以将它包含在我的库中。

注意 - 从boost中提取shared_ptr非常困难,至少BCP提供了大约324个文件......

3 个答案:

答案 0 :(得分:3)

我从Boost中提取了shared_ptr以单独使用它,它肯定少于300个文件。那是3年前然而事情可能已经发生了变化(这些天可能在配置文件夹中有更多文件?)。我需要的shared_ptr是:

  • assert.hpp
  • checked_delete.hpp
  • throw_exception.hpp
  • config.hpp和config目录
  • 细节/ bad_weak_ptr.hpp
  • 细节/ interlocked.hpp
  • 细节/ shared_count.hpp
  • 细节/ sp_counted_base.hpp
  • 细节/ sp_counted_base_w32.hpp
  • 细节/ sp_counted_impl.hpp
  • 细节/ workaround.hpp
  • 最后,shared_ptr.hpp本身。

我认为weak_ptr和enable_shared_from_this会不会添加很多文件。

答案 1 :(得分:1)

最新版本的GCC包括TR1的实现。

#include <tr1/memory>

这为您提供了std::tr1命名空间中提到的所有三件事。

答案 2 :(得分:1)

BCP在组件级别工作,因此组件之间的任何依赖性都会导致文件数量激增。

我会尝试将我需要的文件包含在编译器告诉我的那些文件中,一个接一个。构建产品时,您应该拥有所需的文件。

这会减少很多文件的数量,而这需要花费你的一些时间。

如果BCP能够为您做到这一点显然是必须的:在文件级别而不是在组件级别工作,并且能够处理条件编译。