07/02/11 17:55:42
>>483
環境はVC++6.0です。
> class Hoge1 : public MemoryPool<Hoge, 100>
これだと新たにクラスを作らないといけないので・・・。
ところでさっきのコードは不正確でした。
実際はこんなかんじです。
Effective C++(だかModern C++ Design)を参考にしています。
template<typename T, size_t NUM>
struct MemoryPool {
union Chunk {
unsigned char buffer_[sizeof(T)];
Chunk * next_;
};
static Chunk block_[NUM];
static bool blockInitialized_;
static Chunk * head_;
static void * alloc(size_t size);
static void free(void * p, size_t size);
};
スレ違いのような気もするけど、自分がヘタレだと云う点では
間違っていないな・・・。