這個問題延伸以前post討論的boost::shared<T>&
用處構造函數參數:目的的shared_ptr <T> &&作爲構造函數參數的
class SomeClass {
SomeClass(const boost::shared_ptr<SomeOtherClass>&);
}
會在地方boost::shared_ptr<T>&
提供任何利益的右值引用參數?
class SomeClass {
SomeClass(const boost::shared_ptr<SomeOtherClass>&&);
}
特別地,對於多線程設置,將與shared_ptr的類型的右值基準的構造是任意的更加有用然後傳遞按值或傳遞通過引用?
如果您採用右值引用,可以將'shared_ptr'移動到內部成員中,而不是複製它。複製'shared_ptr'會導致它增加引用計數,這比最初想象的要貴得多。注意當複製'shared_ptr'時線程安全,移動一個不是。 –