假設驗證碼:unique_ptr的向量,繼承?
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<...>
}
FYI:這是完全一樣的問題與生指針一樣。 – rubenvb
@rubenvb:你是對的,我從來沒有注意到...... :) –