【初心者歓迎】C/C++室 Ver.68【環境依存OK】
■ このスレッドは過去ログ倉庫に格納されています
0375デフォルトの名無しさん
2009/10/04(日) 23:18:31以下のような関数を書いたんです。動機は自作コンテナのオブジェクトプール用のイニシャライザです。
以前の環境をリセットして再利用できるように初期化します。
で、てきとーなテストではうまくいきました。つまり、クラスや構造体のメンバ変数を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;
}
■ このスレッドは過去ログ倉庫に格納されています