2014年11月5日水曜日

shared_ptrについて

shared_ptrを利用して、配列のポインタを自動解放することが出来なかった。
環境はVisualStudio2008。
C++11からは開放関数にstd::default_deleteを指定すると、自動開放可能!
2,008を早く2013にしたいけど、インストーラの関係から難しい。。。

代替案として、
boostの機能を利用すると、shared_ptrで配列も同時解放が可能。
例: boost::shared_ptr<int[]> testData;
配列の領域を一気に取得したい場合はコンストラクタを使用するようにしないと上手くいかないので注意。
例: boost::shared_ptr<int[]> testData(new int[5]);

他に、C++の型推論機能として、autoというのは実装されていることを知ったが、C++11からの機能だった。。。ここでも、2008の壁がある。。。
型推論を使うと、コードを記載する量が減るので将来的に使っていきたい。

make_sharedを使用すると、boost::shared_ptrの書き換えが可能。何のためにあるのか、あんまり未だよくわからないので、分かったら追記します。

0 件のコメント:

コメントを投稿