タスクシステム総合スレ part3
■ このスレッドは過去ログ倉庫に格納されています
0869名前は開発中のものです。
2009/01/31(土) 16:52:32ID:9d5EHsE6typedef TaskHandle unsigned int;
struct HashEntry
{
TaskHandle handle;
Task* task_ptr;
};
typedef HashTable HashEntry[max_of_hash_entry];
Taskクラスのコンストラクタでは、TaskHandleとしてincremental IDを付与して
HashTableに登録するコードを書く。Taskクラスのデストラクタでは、HashTable
からremoveするコードを書く。
TaskHandleから具体的な型に変換するのは
template<class TaskClass>
TaskClass* TaskHandleToPtr(TaskHandle h)
{
Task* p = HashTableからhのTaskを取得();
if (typeid(p)!=typeid(TaskClassのインスタンス))
return null;
return (TaskClass*)p; // このcastは安全
}
こうなるな。
■ このスレッドは過去ログ倉庫に格納されています