我正在使用某个大型且维护良好的开源 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/