3
将派生类的unique_ptr用作将unique_ptr用作基类的函数的参数
我正在尝试unique_ptr在将aunique_ptr用作基类的函数中使用to派生类。就像是: class Base {}; class Derived : public Base {}; void f(unique_ptr<Base> const &base) {} … unique_ptr<Derived> derived = unique_ptr<Derived>(new Derived); f(derived); 如果我正确理解此答案,则此代码应该可以工作,但是会导致以下编译错误: 错误C2664:'f':无法将参数1从'std :: unique_ptr <_Ty>'转换为'const std :: unique_ptr <_Ty>&' IntelliSense:不存在从“ std :: unique_ptr <派生,std :: default_delete <派生>>”到“ const std :: unique_ptr <基本,std :: default_delete <基本>>”的合适的用户定义转换 如果我更改f为take unique_ptr<Derived> const …