ラムダ関数を使用してstd::vector
を1行で初期化することはできますか? 、std :: vectorのstd :: unique_ptrをlambdaで初期化する
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)));
私はこのようなものの、単一の行に何かをしたいと思います:
using UI = std::unique_ptr<int>;
using VUI = std::vector<UI>;
はこれまでのところ、私は次の操作を行うことができています:
私は、次の別名を使用しています好ましくはラムダを使用する。
コードの可読性を難読化する以外に、単一行の目的は何ですか? –
想像できるすべての構文を1行に書くことができます(複数のマクロ指令を除いて、1行に1つのマクロ指令しか指定できません)。 – user2079303