有人对如何通过有任何想法吗boost::shared_ptr
- 按值或按引用。
在我的平台上(32位)sizeof(shared_ptr)
等于 8 个字节,看起来我应该通过引用传递它们,但也许有人有其他意见/做了配置文件/类似的东西?
在 C++ 中,根据对象的大小选择是按值传递还是按引用传递通常是一个坏主意。
部分原因是编译器通常会在按值传递时执行复制省略,从而消除复制值的成本,但主要是因为这两个选项经常behave不同。
因此,请选择最能表达您需要执行的操作的选项。
With a shared_ptr
,它存在的全部原因是它可以复制,以便多个对象可以共享所指向对象的所有权。如果你从未通过shared_ptr
通过价值,你可以开始想知道为什么它是一个shared_ptr
根本不。 Ascoped_ptr
那么可能是一个更有效的解决方案。
显然,这并不是说你应该always pass shared_ptr
也按价值。值传递是他们的常见用例。
如果您需要调用者和被调用者拥有共享所有权,请按值传递。如果您不希望被调用者取得任何类型的所有权,请通过引用传递。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)