{
Vec() noexcept;
Vec(std::initializer_list<T>);
Vec(const Vec &);
Vec(Vec &&) noexcept;
~Vec() noexcept;
...
И у меня есть ещё std::deque<T>, T — обычный плоский тип вроде double. Задача — построить Vec по содержимому дека. Если делаю так:
auto &dots = ... ;
rust::Vec<T> xs { dots[0], dots[1], dots[2] };
return xs;
то всё очевидно работает. Если пытаюсь натянуть динамический размер, то не работает ( error: no viable conversion from returned value):
auto &dots = ... ;
rust::Vec<T> xs(std::initializer_list<T>(dots));
return xs;
Правильно ли я понимаю, что initializer_list динамического размера создать невозможно?
У initializer_list нет конструкторов (кроме конструктора по умолчанию)
Тебе тут не нужен initializer_list, сделай конструктор от рэнжа или хотя бы от пары итераторов
Это библиотечный тип, увы.
std::initializer_list нужен в первую очередь для данных, которые вбиты в коде как { 1, 2, 3 }, а для динамики, как уже подсказали, нужна пара итераторов/ренж
Обсуждают сегодня