gpt4 book ai didi

c++ - 应该/可以在函数中通过引用传递智能指针

转载 作者:搜寻专家 更新时间:2023-10-31 02:18:22 28 4
gpt4 key购买 nike

智能指针应该/可以在函数中通过引用传递吗?

即:

void foo(const std::weak_ptr<bar>& x)

最佳答案

当然你可以通过const&传递一个智能指针。

这样做也是有原因的:
如果接受所述智能指针的函数只是一个接受原始(观察)指针以操纵(潜在)指针的函数的前端。
除了转让/共享所有权之外,永远不要强制任何人使用智能指针做任何事情,他们可能不会用你坚持的那个来管理它。

在所有其他情况下,使用智能指针意味着转移/共享所有权,并避免廉价复制(只是测试它是否拥有任何东西和引用计数,以及两个指针份)实际上并不能给你买任何东西。

关于c++ - 应该/可以在函数中通过引用传递智能指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34562339/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com