我目前正在尝试通过引入智能指针来解决我们代码库中的一些弱点。代码库非常大,并且像蜘蛛一样相互关联,就像喝了多杯咖啡的蜘蛛一样。

我想知道人们是否曾经尝试过,他们的方法是什么。

我的第一步是键入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。

大概旧代码中至少有一些删除调用吗?如果使用智能指针,那肯定会失败。

智能指针是否具有某些功能,即通过代码库追逐特定实例。使它工作,然后继续。祝你好运!

10-04 13:31