【发布时间】:2016-01-07 01:52:35
【问题描述】:
我正在尝试通过 void* 将共享指针传递给 Obj-C,以便它可以保留特定对象,然后将其删除(通过 C++ 函数)。
这行得通吗?
我很想有一个更好的主意,但这似乎是获取对共享指针的引用的最快方法。只是想确保我的数学没有在 malloc 上关闭(因为我不经常使用它)。
std::shared_ptr<AAA> shared_ptr = getSharedPointer();
std::shared_ptr<AAA>* ptr = malloc(sizeof(std::shared_ptr<AAA>));
*ptr = shared_ptr;
return ptr;
【问题讨论】:
-
malloc 与共享 ptr?永远不要那样做。
-
Obj-C 将如何删除该指针?用吗?
-
我不明白你要做什么,但它似乎不对。
-
可能是 Obj-C 提供了可以使这更容易的功能,但一般的解决方案是给其他语言一个对象指针加上 getref、addref 和 removeref 函数。你不要给它一个指向 C++ shared_ptr 实现细节的指针
-
从未使用过
Obj-C,但我想你可以传递给它的唯一东西是通过shared_ptr.get()获得的原始指针。