Возможно ли инициализировать std::vector
в одной строке с использованием лямбда-функций?Инициализировать std :: vector of std :: unique_ptr с lambdas
Я использую следующие псевдонимы:
using UI = std::unique_ptr<int>;
using VUI = std::vector<UI>;
До сих пор, я могу сделать следующее:
UI init[] = { UI(new int(0)), UI(new int(0)), UI(new int(0)) };
VUI vec { std::make_move_iterator(std::begin(init)), std::make_move_iterator(std::end(init)) };
VUI vec;
for (unsigned i=0; i<3; ++i)
vec.emplace_back(UI(new int(0)));
Я хотел бы сделать что-то подобное, но в одной строке, предпочтительно с использованием лямбда.
Какова цель единственной строки, кроме обфускации читаемости вашего кода? –
Вы можете написать каждую единую воображаемую конструкцию в одной строке (кроме нескольких директив макросов, вы можете иметь только одну директиву макроса на линии). – user2079303