如何将boost :: shared_ptr引入现有(大型)C代码库?

如何将boost :: shared_ptr引入现有(大型)C代码库?,第1张

概述我目前正试图通过引入智能指针来解决代码库中的一些弱点.代码库非常大,并且像一只拥有一对多咖啡的蜘蛛相互关联. 我想知道人们是否曾尝试过以前的做法以及他们的做法是什么. 我的第一步是typedef类,如下所示. #ifndef USE_SMART_POINTERS #define USE_SMART_POINTERS 0#endif#if USE_SMART_POINTERS == 1 我目前正试图通过引入智能指针来解决代码库中的一些弱点.代码库非常大,并且像一只拥有一对多咖啡的蜘蛛相互关联.

我想知道人们是否曾尝试过以前的做法以及他们的做法是什么.

我的第一步是typedef类,如下所示.

#ifndef USE_SMART_POINTERS    #define USE_SMART_POINTERS 0#endif#if USE_SMART_POINTERS == 1    #include <boost/smart_ptr.hpp>#endifnamespace ProductX{    // forward decleration    class CTObject;    //typedefs    #if USE_SMART_POINTERS == 1        typedef boost::shared_ptr<CTObject> CTObjectPtr;    #else        typedef CTObject* CObjectPtr;    #endif}

现在我意识到这将导致丰富的编译领域,比如

CTObjectPtr i = NulL;

当智能指针启用时,将完全bork.

我想知道在这个早期阶段是否有任何我可以做的事情来减少编译错误的数量,或者是因为我怀疑只是根据具体情况进行处理.

干杯
丰富

解决方法 不要这样做:我的意思是typedef.

据推测旧代码至少有一些删除调用吗?在智能指针的情况下肯定会失败.

智能指针是否有某些东西,即通过代码库追逐特定实例.让它工作,然后继续前进.祝好运!

总结

以上是内存溢出为你收集整理的如何将boost :: shared_ptr引入现有(大型)C代码库?全部内容,希望文章能够帮你解决如何将boost :: shared_ptr引入现有(大型)C代码库?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1235929.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存