dynamic_cast<B*>(a); //Would not throw std::bad_cast.在第一种情况下,会生成std::bad_cast异常,而在第二种情况下,不会生成异常-相反,b指针只是被赋值为NULL谁能给我解释一下,为什么只有前者抛出了异常,而这两个都是bad_cast示例?我认为这个决定背后有一个很好的动机,我误用了一些东西,因为我不理解这种动机。
0x :: forall t.[t]根据通常的泛化/实例化规则,我理解这种情况是如何发生的,但我不确定是否希望有类似forall a. a的东西。相反,我们可以说我们推断的通用类型是程序中某些错误的标志吗?如果是,我们是否可以利用这一“事实”来故意在其他情况下不检查无效程序?c = []推断类型:
c :: forall t.