Я могу создать constexpr
зЬй :: массива:Невозможно создать constexpr зОго :: вектор
constexpr std::array<int,5> values {1,2,3,4,5};
Он работает отлично. Но я не могу создать constexpr
вектор:
constexpr std::vector<int> vec = {1,2,3,4,5};
Это дает мне ошибку:
the type 'const std::vector<int>' of constexpr variable 'vec' is not literal constexpr std::vector<int> vec = {1,2,3,4,5};
Формально это потому, что конструктор 'vector' не объявлен' constexpr'. Почему это не так объявлено? Поскольку конструктор 'vector' обычно должен выделять память в куче, что, конечно же, может быть сделано только во время выполнения. –
@Igor Tandetnik Итак, нет способа создать вектор constexpr? – Leo
Нет, нет. Зачем вам это нужно? Мне это мало смысла. Весь смысл «вектора» - его способность динамически изменять размер. Если вам это не нужно, просто используйте 'std :: array' или простой массив. –