C/C++

Constexpr инициализация статических массивов.

Есть ли способ сформировать за время компиляции статический массив заполненный простой последовательностью типа 1,2,3,4......n так, чтобы значения из которого можно бы считывать в функции main?
что-то вроде
int main()
{
constexpr char arr[10] = {1,2,3,4,5,6,7,8,9,10}; - значений мало, легко записать вручную.
...
}
А если нужно такой же, но на 1000 элементов?
Программный стек не резиновый. Для хранения 1000 элементов следует использовать кучу, а данные в контейнер загружать из базы или из файла. Сам контейнер сокрыть в пользовательском типе и ограничить к нему доступ в соответствие с целями и задачами, инициализацию выполнить в конструкторе путём подключения к базе данных или файлу с данными. Если данные только для чтения, то хранящий их объект следует сделать константным, а если планируется обращаться к нему многократно и из разных частей программы, то следует объявить его статическим с использованием ключевых слов inline static const

Если объект такого типа имеет другие поля, которые необходимо изменять во время выполнения программы, то такие поля помечаются ключевым словом mutable
ВМ
Виктор Матасов
77 962
Лучший ответ
Если 1000 элементов и влом забивать все руками - то в таких случаях используют системы ресурсов.

Qt компилятор ресурсов идёт по подобному методу и генерирует из файла c++ исходник с массивами, что, естественно, замедляет компиляцию

На винде - виндовая система ресурсов.

В gcc / objcopy - есть возможность превратить произвольный файл в объектный и прилинковать его к исполняемому. После этого становятся доступными символы начала и окончания бинарного блока, типа такого:
 extern char _data_txt_start; 
extern char _data_txt_end;
Ну и наконец - библиотеки, работающие с архивами, одно из самых общепринятых средств.
Цикл for_each и for как я понимаю здесь будет не уместен, раз речь идет об инициализации массива во время компиляции, а не во время выполнения?
Сергей Новичихин Во время выполнения слишком банально - iota(). Загрузка из файла тоже.
Просто понапридумали всяких consteval и constexpr, а толку от них...