c++ - const boost::shared_ptr<T>& 作为函数参数的目的?

标签 c++ boost

我正在使用某个大型且维护良好的开源 C++ 库,并遇到了一个具有以下形式的构造函数的类定义

class SomeClass {
    SomeClass( const boost::shared_ptr<SomeOtherClass>& );
}

我的问题是:传递 const boost::shared_ptr<T> 有什么意义?引用?传递 boost::shared_ptr<T> 是否真的存在不可忽略的开销?按值(value)计算,或者传递 boost::shared_ptr<T> 是否存在其他危险?按我不知道的值(value)?

最佳答案

按值传递将复制它,这会导致引用计数增加,并在所有线程之间同步。绝对不可忽略。

关于c++ - const boost::shared_ptr<T>& 作为函数参数的目的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10458235/

相关文章:

c++ - 将 vector 写入和读取到二进制文件

c++ - 获取范围内声明的所有变量 - C++

c++ - boost/algorithm/string/trim.hpp 编译错误

c++ - 为 boost::property_tree::ptree 移动构造函数

包含解释为注释的 URL 的 C++ 类对象宏

c++ - 从 demangled 名称中获取 mangled 名称

c++ - 使用外部条件修改序列操作

c++ - boost::bind 返回一个函数对象,它是需要指针的函数的参数

c++ - boost interprocess file_lock 实际上对目标文件做了什么?

C++ 使用已删除函数 std::unique_ptr 与基类