我目前正在尝试通过引入智能指针来解决我们代码库中的一些弱点。代码库非常大,并且像蜘蛛一样相互关联,就像喝了多杯咖啡的蜘蛛一样。
我想知道人们是否曾经尝试过,他们的方法是什么。
我的第一步是键入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。
大概旧代码中至少有一些删除调用吗?如果使用智能指针,那肯定会失败。
智能指针是否具有某些功能,即通过代码库追逐特定实例。使它工作,然后继续。祝你好运!