Я хотел бы иметь класс с конструктором, который принимает переменное количество аргументов и заполняет им массив, каким-то образом распаковывая его в список инициализаторов запятых, который поддерживается массивом, вот пример:
class A{
public:
template<typename ...T>
A(T ... values): arr(sizeof...(T)) {
//convert the values somehow that the parameter pack is expanded in the comma initialized list as the following:
//arr << values1, values2, values3,... , valuesN
}
ArrayType arr;
}
Этот метод инициализации запятой особенно актуален для ArrayType, являющегося классом Eigen::Matrix ( arr << 1,2,3;
). Мне было интересно, выполнимо ли следующее и есть ли какой-то другой элегантный способ заполнить массив в случае, если мы можем использовать оператор индекса (i) для i-го элемента :-)
Большое спасибо :)
arr << values1; arr << values2;
, это было бы легко. В противном случае я не вижу короткого способа сделать это без написания шаблонов рекурсивных функций. - person Johannes Schaub - litb   schedule 07.03.2014template
? - person Yakk - Adam Nevraumont   schedule 07.03.2014