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 件のコメント :
コメントを投稿