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

时间:2013-07-22 00:18:34

标签: c++ c++11 unique-ptr abi binary-compatibility

我对std::unique_ptr的解读使我确信它(以及其他智能指针)绝对是项目内部指针的最佳选择(特别是在Could an optimizing compiler remove all runtime costs from std::unique_ptr?之后),但我不是确定在接口上做什么。我不完全了解各种C ++ ABI是如何工作的,所以如果这是一个愚蠢的问题,请耐心等待,但是可以使用或返回指针,具有指针成员的类/结构等的函数替换为使用{ {1}}(可能使用unique_ptr refs?)而无需重新编译? C代码可以使用unique_ptr与C ++接口进行交互而不会出现复杂问题吗?

1 个答案:

答案 0 :(得分:5)

AFAIK,无法保证sizeof(unique_ptr<T>) == sizeof(T*),所以没有。

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