Елементарный способ: произвести заполнение массива при инициализации. Но массив статический и уже занимает место в образе. Нужно каким-то образом указать компилятору заполнить область массива конкретным значением.
Код static int arr[5]={1} заполняется как {1, 0, 0, 0, 0}, а нужно {1, 1, 1, 1, 1}
__attribute__((fillupper(1))) игнорируется gcc.
Массив неконстантный. Массив с 5 элементами - пример. Нужно заполнить массив в 4096 элементов.
Использование возможностей STL сильно ограничены, включая производные. Они все имеют элементарное решение, указанное в первом предложении.
Доработка ответа:
template
И необходимо дописать/изменить операторы для нужных Вам преобразований.
Ответ
#include
template
int main() {
Int<10> arr[1024];
std::cout << arr[10].val << std::endl;
}
https://godbolt.org/z/6-BEPi
Комментариев нет:
Отправить комментарий