Вычислить std::vector в константном контексте и скопировать значения в std::array в C++20 или более поздней версии [дублC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Вычислить std::vector в константном контексте и скопировать значения в std::array в C++20 или более поздней версии [дубл

Сообщение Anonymous »

Я пытаюсь использовать std::vector, который имеет функции-члены constexpr, начиная с C++20, для вычислений во время компиляции со статически известным, но неочевидным количеством значений, а затем переносить эти значения во время выполнения, записывая их в массив.
Я понимаю, что не могу напрямую перенести вектор в контекст времени выполнения, потому что все, что было выделено во время компиляции, должно быть освобождено во время компиляции. Я также понимаю, что мне нужен хотя бы один шаблон функции, поскольку типы возвращаемых значений функции не могут зависеть от аргумента.
Это моя попытка.

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

#include 
#include 
#include 

consteval std::vector primes_helper(int n) {
std::vector v;
for (int i = 2; i < n; ++i) {
bool prime = true;
for (int j = 2; j * j 

Подробнее здесь: [url]https://stackoverflow.com/questions/78432004/compute-stdvector-in-consteval-context-and-copy-values-to-stdarray-in-c20[/url]
Ответить

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

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

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

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

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