- 375 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 23:18:31 ]
- 質問です。VC9EEで開発しています。
以下のような関数を書いたんです。動機は自作コンテナのオブジェクトプール用のイニシャライザです。 以前の環境をリセットして再利用できるように初期化します。 で、てきとーなテストではうまくいきました。つまり、クラスや構造体のメンバ変数を0にできました。 さて、このコードはセーフなのかアウトなのか知りたいです。メモリリークなどはしてないみたいです。 そのほかにも、もっと簡単な代替手段があればご教授ください。お願いします。 template<class T> bool ZeroInitializer(T& in){ void* Mem = calloc(1,sizeof(T)); if(Mem == NULL) return false; T* Temp = new(Mem) T;//<new>をインクルードしないと使えない。 in = *Temp; delete Temp; // free(Mem); return true; }
|

|