Как я могу инициализировать массив 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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