2

我的阅读std::unique_ptr使我确信它(连同其他智能指针)绝对是项目内部指针的最佳选择(尤其是在优化编译器可以从 std::unique_ptr 中删除所有运行时成本之后吗?),但我还不确定在界面上做什么。我并不完全了解各种 C++ ABI 是如何工作的,所以如果这是一个愚蠢的问题,请多多包涵,但是可以将接受或返回指针的函数、具有指针成员的类/结构等替换为使用unique_ptr(也许使用unique_ptrrefs?)而不需要重新编译?C 代码可以与 C++ 接口交互unique_ptr吗?

4

1 回答 1

5

AFAIK,不能保证sizeof(unique_ptr<T>) == sizeof(T*),所以不。

但即使它的大小相同,也不能保证任意 ABI 将通过与“值”参数相同的机制传递指针参数。

于 2013-07-22T00:20:59.037 回答