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

Jan*_*sek 4 c++ boost

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

class SomeClass {
    SomeClass( const boost::shared_ptr<SomeOtherClass>& );
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:const boost::shared_ptr<T>通过引用传递的重点是什么?是否真的存在与传递boost::shared_ptr<T>by值相关的不可忽略的开销量,或者传递一个boost::shared_ptr<T>我不知道的值的其他类型的危险?

Ste*_*end 9

通过值传递它将复制它,从而导致引用计数增量,在所有线程之间同步.绝对不容忽视.