为所有(特定的)函数调用禁用clang-tidy



我的具体问题是cppcoreguidelines-avoid-magic-numbers正在标记对setter的调用。例如:

auto person = Person();
person.set_height(6); // <--- Flagged as "magic number"

这真的不是一个神奇的数字,因为这个数字所代表的上下文是由setter调用本身明确的(在这种情况下它是Person的高度)。因此,我希望能够忽略cppcoreguidelines-avoid-magic-numbersset_height的所有调用。

我想在一般情况下能够做的是忽略<list-of-warnings>上的所有<some-function>的调用,并且只忽略那些函数调用(例如全局禁用是不希望的)。

作为一种解决方法,我可以编写一个emacs保存钩子,在匹配这些设置的每行之后插入// NOLINT(cppcoreguidlines-avoid-magic-numbers)。我真不愿意那样做。

是否有更简单的方法?是否有其他解决方法来处理这个问题?

person.set_height(6);

它表示什么,英寸,英尺,厘米,米?警告是正确的,即使在高度值上下文中,6也是一个幻数。

c++核心指南建议使用用户定义的字面量。

constexpr double operator"" _ft(double height) {
return height;
}
constexpr double operator"" _in(double height) {
return height / 12;
}
person.set_height(6_ft);
person.set_height(72_in);

相关内容

  • 没有找到相关文章

最新更新