Я узнаю больше о метапрограммировании шаблонов на С++, и после стандартного создания простых чисел и факториала во время компиляции я теперь пытаюсь создать класс Matrix во время компиляции. Подзадача этого состоит в том, чтобы создать вектор размера N
, заполненный нулями. Возможно ли это сделать с помощью метапрограммирования шаблонов?
Я думаю что-то вроде этого.
template<int N>
struct Vec {
static std::vector<int> vec;
constexpr Vec(int count) {
for (int i = 0; i < count; ++i) {
vec.push_back(0);
}
}
};
Но компилятор говорит, что «циклы for» не разрешены в конструкторе constexpr. Есть ли способ добиться такой функциональности во время компиляции.
Vec
принимает целочисленный параметр шаблона и имеет конструктор с целочисленным аргументом? Также вам действительно нужна статическая неконстантная переменная? - person Martin Bonner supports Monica   schedule 11.05.2019std::array
твой друг здесь. - person George   schedule 11.05.2019