
C++のサンプルコードを見ていて、気になった事がありました。
インスタンス変数にshared_ptrを使っていたのですが、初期化の時に以下のようにしていました。
1 2 3 4 5 6 7 8 9 10 11 12 | 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に同じ質問がありました。
なるほど、shared_ptrは遅いようなので、高速化するテクニックのようです。
0 件のコメント :
コメントを投稿