独立的shared_ptr <T>实现?

Meh*_*dad 7 c++ shared-ptr

有没有人知道shared_ptr我可以在我的程序中使用的TR1 (以及其他智能指针)的开源,独立实现?


注意:

"独立实现shared_ptr"意味着shared_ptr 它本身需要独立.
不只是包括库.

所以请,没有提升!

Man*_*rse 5

boost实现shared_ptr完全是header-only,所以安装boost来使用它就像下载boost并将其添加到编译器的头搜索路径一样简单.与其他任何独立实现相比,这并没有比增强更难.如果您只想提取shared_ptr组件以进行单独分发,那么您可以使用Boost BCP.

  • 你是*开玩笑吧?我需要复制1.94 MB的标题(即231个文件)才能使用`scoped_ptr`?在我的问题中,你似乎错过了**独立**这个词.:( (6认同)

Pat*_*Fog 5

你可以很容易地破解wxWidgets中的sharedptr.h头文件,删除一些宏依赖项(assert,"explicit"关键字等).然后,您需要替换或删除内部引用计数变量的原子inc/dec.重命名模板并将其粘贴到命名空间中.然后你将拥有shared_ptr的单文件独立版本.

这样做的好处是,您正在修改的源具有广泛的用途和同行评审.


Geo*_*che 3

您可以使用Boost BCP从Boost中提取组件。