Цель: В разных частях кода я загружаю файлы (текстуры и шрифты в моем случае). Таким образом, загрузка файлов может произойти в любое время выполнения программы (хотя все кэшированные, но все же.) Я бы хотел скачать только один раз при запуске.Возможно ли собрать данные во время компиляции
Возможные решения:
- вручную заполнить в объекте кэша с текстурами и шрифтов.
- Сканирование папки/текстуры// шрифты/
- Волшебные
На самом деле я буду делать для текстуры, как во втором случае (потому что это не имеет решающего значения для памяти). А для шрифтов я буду использовать первый случай (потому что у них будет другой рендер для каждого размера). Но все же мне интересно, как вы можете автоматизировать этот процесс.
Следует забыть о текстурах и шрифтах, чтобы сузить проблему и рассмотреть вектор со строками.
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;
}
Я знаю, что можно вычислить некоторые выражения с помощью шаблонов. И подумайте, что ответ на мой вопрос - это просто «Нет».