std :: unique_ptr ABI与原始指针兼容吗?

She*_*evy 1 c++ abi unique-ptr binary-compatibility c++11

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

Oli*_*rth 5

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

但即使它的大小相同,也无法保证任意ABI将通过与"value"参数相同的机制传递指针参数.