Как я могу инициализировать массив constexpr значениями, используя std::generateC++

Программы на C++. Форум разработчиков
Anonymous
Как я могу инициализировать массив constexpr значениями, используя std::generate

Сообщение Anonymous »

Например, если бы я хотел, чтобы constexpr std::array был инициализирован всеми числами, кратными 3, от 1 до 300 во время компиляции, как я могу это сделать?
Моей первой мыслью было использовать std::generate, что-то вроде:

Код: Выделить всё

constexpr std::array a { std::generate(a.begin(), a.end(), [n=0]()mutable{ return n+=3; });
Я получаю сообщение об ошибке, например :9:52: error: значение void не игнорируется, как должно быть
и я не могу использовать std::generate после этого, потому что, конечно, в этот момент оно доступно только для чтения
Спасибо за любую помощь

Подробнее здесь: https://stackoverflow.com/questions/665 ... tdgenerate

Вернуться в «C++»