我在Xcode的最新版本中构建了一个C++框架(在编写本文时是9.4.1),我使用的是Objective++代码,也是Xcode内部的。我需要从一个指针类型执行一个dynamic_cast到另一个指针类型。但是,dynamic_cast只在调试版本中工作,而不是在发布版构建中工作。对于目标-C++中dynamic_cast是如何工作的,我是否缺少或理解了什么东西使这个示例失败了?作为烟雾测试,dynamic_cast at 运行得很好。
有趣的是,同样是在C++命令行应
如果我们组合对dynamic_cast的调用并回到指针值上的原始类型,那么C++是否保证保留该值,前提是没有dynamic_cast失败,即不返回一个nullptr?virtual public A {};{ C* c = dynamic_cast= nullptr) B* bp = dynamic_cast<B*>(c);