我只是不知道该怎么做..
基本上,如果每个模板特化类型(T)都有不同的初始化参数,那么通用的 ResourceCache 如何加载/创建资源?
template< class T>
class ResourceCache{
T* cache[100];
T* LoadResource(different parameters for different T ){//used in a cache miss..
Create( different parameters for different T );
}
}
如果我对 IResourceParams 类使用抽象,我的 ResourceCache 将无法在不使用多态的情况下使用它自己已知的类型资源数据,这有点愚蠢,因为在运行时他知道类型是什么,我完全是在做狗屎编译时工具的 prol 中的运行时...我猜..
在我目前的尝试中,我创建了一个具有虚拟 T* Create() 方法的模板化 IResourceDesc,因此您需要派生以添加数据并专门化 Create 方法,但这很糟糕,因为我不能在 ResourceCache 类中拥有 IResourceDesc 的集合(用于比较当前加载的,通过 desc 获取缓存的资源等)...