是因为clang编译器在处理覆盖删除(override)时的行为与其他编译器(如GCC)有所不同。
覆盖删除是C++11引入的一个特性,用于在派生类中显式地指示对基类中的虚函数进行覆盖。在C++中,当派生类中的函数与基类中的虚函数具有相同的名称、参数列表和const属性时,可以使用override关键字来标记派生类中的函数,以确保正确的覆盖行为。
然而,不同的编译器对于覆盖删除的处理方式可能有所不同。在使用clang 10 for visual studio 2019编译时,可能会出现不会调用覆盖删除的情况。这可能是由于编译器的实现方式或编译器版本的差异导致的。
为了解决这个问题,可以尝试以下几个方法:
总之,使用clang 10 for visual studio 2019编译时不会调用覆盖删除可能是由于编译器的实现方式或版本的差异导致的。可以尝试更新到最新版本的编译器、检查代码中的override关键字的使用情况,或尝试使用其他编译器进行编译来解决该问题。
领取专属 10元无门槛券
手把手带您无忧上云