class Foo { public: Foo(std::shared_ptr<Boo> boo) : m_Boo(std::move(boo)) {} private: std::shared_ptr<Boo> m_Boo; };