早速使ってみましたよ。
- A garbage collector for C and C++ から gc6.7.tar.gz をダウンロードして、解凍
- お好きな Makefile を使ってビルドします。自分は VC8 を使用したので NT_MAKEFILE を Makefile にリネームして nmake しました
- さくっとビルド終了……のはずがエラーが!
- VC8 (のリソースコンパイラ) には -Td オプションが使えないらしい。面倒なので Makefile(NT_MAKEFILE) の 45 行目にある $(cvars) を削除
- 警告はたくさん出るけれどとりあえずビルドは成功
準備ができたので早速使ってみました。
>
#define GC_NOT_DLL
#include <gc/gc_cpp.h>
#pragma comment(lib, "gc.lib") // gc
#pragma comment(lib, "user32.lib") // gc.lib の中で MessageBox を呼ぶので必要#include <iostream>
using namespace std;struct object : public gc_cleanup {
object() { cout << "ctor"; }
~object() { cout << "dtor" ; }
};int main(int, char*[])
{
for(int i = 0; i < 5000; ++i)
{
object* p = new (GC) object;
}
return 0;
}