[C++] shared_ptrのtips (moveを使って高速化する)

C++のサンプルコードを見ていて、気になった事がありました。 インスタンス変数にshared_ptrを使っていたのですが、初期化の時に以下のようにしていました。 ```cpp `gutter:true; highlight:3; class Foo { public: Foo(std::shared_ptr<Hoge> hoge) : hoge_(std::move(hoge)){ }; ~Foo(){ std::cout << "Destroy FOO" << std::endl; }; private: std::shared_ptr<Hoge> hoge_; }; ``` 引数のshared_ptrをインスタンス変数に渡す時にstd::moveしていました。 なんでだろうと思ってググってみたら、[stackoverflow](https://stackoverflow.com/questions/41871115/why-would-i-stdmove-an-stdshared-ptr)に同じ質問がありました。 なるほど、shared_ptrは遅いようなので、高速化するテクニックのようです。

0 件のコメント :

コメントを投稿