Kra*_*nar 4 c++ polymorphism boost-any
我boost::any用来存储指针,并想知道是否有提取多态数据类型的方法.
这是一个理想情况下我想做的简单示例,但目前无效.
struct A {};
struct B : A {};
int main() {
boost::any a;
a = new B();
boost::any_cast< A* >(a);
}
Run Code Online (Sandbox Code Playgroud)
这失败是因为a正在存储B*,而我正在尝试提取A*.有没有办法实现这个目标?
谢谢.
小智 7
Boost.DynamicAny是Boost.Any的一个变种,它为底层类型提供了更灵活的动态转换.从Boost.Any中检索值需要您知道存储在Any中的确切类型,Boost.DynamicAny允许您动态转换为保持类型的基类或派生类.
https://github.com/bytemaster/Boost.DynamicAny