class d:public b
{
};
如果,b的指针指向d时,想用d里面的函数,而在b里面没有时,我们就会使用std::dynamic_pointer_cast函数,但是,这只适合shared_ptr,不适合std::unique_ptr,因为c 标准库根本没实现。所以要自己实现一个。
实现细节:
template
std::unique_ptr
if (to* cast = dynamic_cast
{
std::unique_ptr
p.release();
return result;
}
return std::unique_ptr
}
总结:估计c 标准库不去实现,是可能违背了std::unique_ptr 的唯一性,以上,函数只适合研究学习。不建议,用在真正的项目里面