c++ - universal dynamic_cast<void*> 等价于多态和非多态类型

标签 c++ templates dynamic-cast

我正在使用 dynamic_cast<void*>在内存管理器模板中获取对象的真实地址。 然而dynamic_cast不允许用于非多态类型。 是否有更通用的方法,或者我是否需要两个版本的模板?

最佳答案

您可以使用 std::is_polymorphic对两种可能性进行编译时切换。

关于c++ - universal dynamic_cast<void*> 等价于多态和非多态类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17475736/

相关文章:

c++ - 是否可以查明 VNC 连接是否处于事件状态

c++ - 如何将两个数组与每个元素作为数字相乘 C++

c++ - C++中有没有一种设计模式可以方便地以统一的函数接口(interface)查询不同类型的数据?

c++ - 如何在 C++ 中使用 openmp 并行运行展开的 'for' 循环(tmp)?

c++ - 为什么我在使用 memset 用零填充对象后在 dynamic_cast 处出现异常

c++ - 帮助在 gcc 中链接

c++ - 如何用自己的类型实例化父类(super class)模板?

c++ - 在条件中更改对象类型

c++ - 为什么 dynamic_cast 存在?

c++ - 如何跟踪分数——C++ 控制台