基本上我有一个class A
和一个class B : public A
。
我想投一个std::shared_ptr<std::vector<A*>
到一个std::shared_ptr<std::vector<B*>
问题是std::vector<B>
不继承自std::vector<A>
,smart_ptr
也不是。所以我做了一个可怕的演员:
std::shared_ptr<VectorA> vector_a = * ((std::shared_ptr<VectorA>*)&vector_b);
代码在那里编译并运行,但它安全吗? http://liveworkspace.org/code/3dQTz1$0