class Parent {}
class Child : public Parent {}
static std::vector<std::unique_ptr<Child>> Foo();
は、この関数を記述するための簡単な方法があります:
std::vector<std::unique_ptr<Parent>> Bar() {
auto children = Foo();
std::vector<std::unique_ptr<Parent>> parents;
result.insert(result.end(), std::make_move_iterator(children.begin()),
std::make_move_iterator(children.end()));
return parents;
}
これは動作しません:
std::vector<std::unique_ptr<Parent>> Bar() {
return Foo(); // Compiler error: cannot convert from vector<...> to vector<...>
}
:これはまったく同じです生ポインタの場合の問題 – rubenvb
@rubenvb:そうです、気づいたことはありません: –