1
目的:在代码的不同部分,我加载文件(我的情况下是纹理和字体)。 因此,在程序执行的任何时候都可能发生下载文件(虽然都是缓存的,但仍然存在)。我想在启动时只下载一次。是否可以在编译时收集数据
可能的解决方案:
- 手动填写带有纹理和字体缓存对象。
- 扫描的文件夹/纹理/ /字体/
- 魔术
其实我对纹理做在第二种情况下(因为它不是为内存的关键)。而对于字体,我会使用第一种情况(因为它们对每种尺寸都有不同的渲染)。但是我仍然想知道如何使这个过程自动化。
应该忘记纹理和字体来缩小问题范围,并考虑带有字符串的向量。
class Files{
static vector<string> files;
static void addFile(string file){/* magic. may be template<string file> */}
static void loadFiles()
{
for(auto file:files){
cout << file; //for example
}
}
}
int main(){
Files::loadFiles();//=> foobarsmthing
Files::addFile("foo");
Files::addFile("bar");
Files::addFile("smthing");
return 0;
}
我知道可以用模板计算一些表达式。并认为对我的问题的答案只是“不”。