У меня есть класс, который содержит массив объектов T
без конструктора по умолчанию.Вот пример:
#include <iostream>
struct Param {
int x;
};
struct A {
A(const Param &p) {
std::cout << p.x << std::endl;
}
};
template<class T, int n>
struct Array {
T data[n];
/* n times */
Array(const Param &p) : data{/* T(p), ..., T(p) */} { }
};
int main() {
Param p{42};
Array<A, 3> arr(p);
return 0;
}
Я ищу способ инициализации поля data
с использованием списка инициализаторов переменного размера T(p)
, содержащего ровно n
элементов.У меня есть ощущение, что это может быть достигнуто с помощью какой-то конструкции, например std::make_index_sequence
, но я не нашел ничего подходящего.