关于引擎内存管理与c++11智能指针的整合

如题,c++11标准已经推出很久了,里面的智能指针各种好用。我很想在写游戏的时候使用智能指针,无奈引擎自有一套内存管理模型,对于自己写的、不继承于引擎的类的类,用智能指针没有问题,但对于继承于Sprite这些类的类,智能指针就完全派不上用场了(当然,也不排除是我技术不济,没找到整合的方法)。加之对引擎自身的内存管理模型还没有完全摸透,写代码时总是担心资源泄露。
所以,在此我想提出两个问题,希望有大牛路过可以解惑一下,谢谢!

1.如何使用智能指针管理所有的类,包括从Sprite之类的引擎自带类继承出来的类?(自己改写引擎代码神马的就不考虑了……)

2.游戏引擎后续开发,是否会考虑采用智能指针重新构建一套内存管理模型,把引擎开发者和使用者都从内存管理的泥潭中解放出来?

技术小虾米路过,欢迎拍砖:)

不建议用智能指针,很容易引起内存泄露,cocos本身对内存管理总体还是不错的,里面借用了c++11的指针引用计数,目前为止很少出现大量内存泄露的情况

智能指针会引起泄露?这倒是没听说过……可以举个栗子吗?

对于不会用的人很容易,比如循环引用

循环引用 对于cc2d自带的内存管理也容易内存泄露吧 这个不是cc2d不用智能指针的理由吧

同意,循环引用只是编程不当,不是智能指针本身的错。不过智能指针有个巨大优势是不怕异常退出,cocos2dx的内存管理好像做不到这一点。

不过我估计,引擎开发人员都忙着给引擎添加新特性,而改用智能指针这种伤筋动骨又没有明显噱头的事情,估计没人愿意干……

我也是初学者,看别人的介绍:c++11的智能指针式线程安全的,也就是有线程锁的机制,这要性能受到了很大影响,而cc的Ref不是线程安全