gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:06:51 24 4
gpt4 key购买 nike

我目前正尝试通过引入智能指针的使用来修复我们代码库中的一些弱点。代码库非常庞大,并且相互关联,就像一只喝过一对多咖啡的蜘蛛。

我想知道以前是否有人尝试过,他们的方法是什么。

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

#ifndef USE_SMART_POINTERS
#define USE_SMART_POINTERS 0
#endif

#if USE_SMART_POINTERS == 1
#include <boost/smart_ptr.hpp>
#endif


namespace 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;

启用智能指针时将完全崩溃。

我想知道在这个早期阶段我是否可以做些什么来减少编译错误的数量,还是我怀疑只是根据具体情况来处理。

干杯丰富

最佳答案

不要这样做:我指的是 typedef。

大概旧代码中至少有一些delete 调用?在智能指针的情况下肯定会失败。

智能指针确定或不确定,即通过代码库追逐特定实例。让它工作,然后继续前进。祝你好运!

关于c++ - 如何将 boost::shared_ptr 引入现有(大型)C++ 代码库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2327552/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com