gpt4 book ai didi

c++ - Boost::any 和多态性

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:03:27 25 4
gpt4 key购买 nike

我正在使用 boost::any 来存储指针,想知道是否有一种提取多态数据类型的方法。

这是一个简单的示例,说明理想情况下我想做什么,但目前行不通。

struct A {};

struct B : A {};

int main() {

boost::any a;
a = new B();
boost::any_cast< A* >(a);
}

这失败了,因为 a 正在存储一个 B*,而我正在尝试提取一个 A*。有办法实现吗?

谢谢。

最佳答案

Boost.DynamicAny 是 Boost.Any 的变体,它提供更灵活的基础类型动态转换。从 Boost.Any 中检索值需要您知道存储在 Any 中的确切类型,而 Boost.DynamicAny 允许您动态转换为持有类型的基类或派生类。

https://github.com/bytemaster/Boost.DynamicAny

关于c++ - Boost::any 和多态性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1088689/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com