我在OpenGL中创建了一个资源加载器,并将其暴露给Python,有一个名为:
的函数Texture* tex = ResourceManager->loadTexture('name.png')
然后我将纹理名称保存在矢量列表中,所以下次当我想加载它时,我会检查它是否已经加载,如果它已经用指针返回它。
但是当我想卸载它时,我不知道它被使用了多少次,如果我直接卸载它会崩溃,因为同一个指针被使用了很多次,我的所有类都暴露了到Python。
我想知道我是否可以将所有这些麻烦留给Python(自动卸载),并且仍然跟踪我加载的纹理并重复使用它?
PS:
platform: linux-x64
gcc: 4.8.3
python c++ boost-python,
editor:kdevelop
答案 0 :(得分:0)
Boost.Python将正确使用C ++ 11或boost shared_ptr。只需返回一个boost :: shared_ptr,就可以在语言边界和C ++代码中处理引用计数。