我目前正在尝试通过引入智能指针的使用来修复我们代码库中的一些弱点。代码库非常庞大,并且像一只吃了一对多咖啡的蜘蛛一样相互关联。
我想知道人们是否尝试过以前的方法以及他们的方法是什么。
我的第一步是 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;
启用智能指针时将完全停止。
我想知道在这个早期阶段我是否可以做些什么来减少编译错误的数量,还是我怀疑只是根据具体情况进行处理。
干杯丰富