У меня есть структура, которая в очень упрощенном представлении выглядит следующим образом:
struct Flags {
const std::array<unsigned int, 8> flags;
Flags(std::vector<unsigned int> initialFlagValues) : flags(initialFlagValues) {}
};
, которая, конечно, не компилируется. Для целей моей программы я хотел бы инициализировать произвольное количество элементов в flags
, в зависимости от длины параметра (std::vector
, C -стиль массива или иным образом), переданного в конструктор struct.
Теперь я хотел бы использовать std::array
внутри структуры, так как сама структура создается много раз (поэтому std::vector
не будет идеальным здесь из-за большого количества распределений / освобождений) , но количество значений в flags
, которые необходимо инициализировать, не всегда одинаково.
Есть ли способ инициализировать указанное c количество полей в flags
в зависимости от размера контейнера последовательности, переданного в качестве параметра в конструктор?