我刚刚遇到了一个(我自己造的!)错误,表现如下。我有一个带有虚拟成员函数的类,我需要通过为一些新用例添加一个额外的参数来扩展该类。我添加了默认值,使其不会中断任何当前通话。我错过的是,有另一个从该类继承的类,该类具有对该函数的替代,而该替代不再是替代。尽管我知道override关键字可以在添加新代码时避免这种情况,但我想知道是否有任何方法可以找到所有词法上足够接近的功能,以免发生类似错误。一旦完成此操作,就有可能在过去的某个时候完成此操作,并想回顾一下代码库。
答案 0 :(得分:5)
Clang具有警告标记format(value, big.mark=" ", drop0trailing=TRUE, trim = TRUE)
# [1] "1 234.5" "1" "12.34"
-Woverloaded-virtual
您可能还对clang-tidy和modernize-use-override感兴趣,希望添加struct Base
{
virtual void foo(int = 42) {}
};
struct Derived : Base
{
virtual void foo() {} // Oups
};
并避免将来在任何符合C ++ 11的编译器中发生此错误。