C++ boost庫子類與父類之間,去掉頂層const,動態轉換
阿新 • • 發佈:2018-12-18
template<class _Ty1, class _Ty2> shared_ptr<_Ty1> static_pointer_cast(const shared_ptr<_Ty2>& _Other) { // return shared_ptr object holding static_cast<_Ty1 *)(_Other.get()) return (shared_ptr<_Ty1>(_Other, _Static_tag())); } template<class _Ty1, class _Ty2> shared_ptr<_Ty1> const_pointer_cast(const shared_ptr<_Ty2>& _Other) { // return shared_ptr object holding const_cast<_Ty1 *)(_Other.get()) return (shared_ptr<_Ty1>(_Other, _Const_tag())); } template<class _Ty1, class _Ty2> shared_ptr<_Ty1> dynamic_pointer_cast(const shared_ptr<_Ty2>& _Other) { // return shared_ptr object holding dynamic_cast<_Ty1*)(_Other.get()) return (shared_ptr<_Ty1>(_Other, _Dynamic_tag())); }
可以用於智慧指標父類與子類之間的轉換。