placement delete の存在意義について
Posted: 2012年9月13日(木) 21:42
現在 placement delete について調べています。
このサイトを始め、いくつかのサイトで placement delete はメモリ領域にオブジェクトを再配置したい場合に使用するとかかれているのですが、このトピックを読む限り、再配置の際に使用する必要はないようなのですが、実際のところどうなのでしょうか?
上記のトピックを読んだ限りでは、デストラクタさえ呼んでしまえば、再び placement new によってオブジェクトを再配置しても問題ないようですね。
つまり placement delete を呼ぶ必要はない、と。
placement delete を呼ぶと、メモリ領域が開放されるようですが、そもそも明示的に開放する必要はありませんし、むしろ明示的に開放すべきではありませんよね?
ローカル変数に配置していたのならばローカル変数の寿命が尽きるのを待つべきですし、mallocによって確保した領域に配置していたのならばfreeで開放するべきでしょう。
結局のところ placement delete の存在意義はないのではないでしょうか?
むしろ、誤ってdeleteしてしまわないように廃止すべきではないかと思うのですが、どう思われますか?
みなさんのご意見がぜひ聞きたいです。
このサイトを始め、いくつかのサイトで placement delete はメモリ領域にオブジェクトを再配置したい場合に使用するとかかれているのですが、このトピックを読む限り、再配置の際に使用する必要はないようなのですが、実際のところどうなのでしょうか?
上記のトピックを読んだ限りでは、デストラクタさえ呼んでしまえば、再び placement new によってオブジェクトを再配置しても問題ないようですね。
つまり placement delete を呼ぶ必要はない、と。
placement delete を呼ぶと、メモリ領域が開放されるようですが、そもそも明示的に開放する必要はありませんし、むしろ明示的に開放すべきではありませんよね?
ローカル変数に配置していたのならばローカル変数の寿命が尽きるのを待つべきですし、mallocによって確保した領域に配置していたのならばfreeで開放するべきでしょう。
結局のところ placement delete の存在意義はないのではないでしょうか?
むしろ、誤ってdeleteしてしまわないように廃止すべきではないかと思うのですが、どう思われますか?
みなさんのご意見がぜひ聞きたいです。