Предположим, что у меня есть класс X
, для которого функциональность требует много значений постоянной таблицы, например массив A[1024]
. У меня есть рекуррентная функция f
, которая вычисляет ее значения, smth like
A[x] = f(A[x - 1]);
Предположим, что A[0]
- известная константа, поэтому остальная часть массива также является константой. Каков наилучший способ заранее рассчитать эти значения, используя функции современного С++ и без хранения файла с жестко заданными значениями этого массива? Моим обходным решением была константная статическая фиктивная переменная:
const bool X::dummy = X::SetupTables();
bool X::SetupTables() {
A[0] = 1;
for (size_t i = 1; i <= A.size(); ++i)
A[i] = f(A[i - 1]);
}
Но я верю, что это не самый красивый способ пойти. Примечание. Я подчеркиваю, что массив довольно большой, и я хочу избежать чудовищности кода.