0

最近我写了一个 Clang-tidy 命名检查,检查用户定义变量的名称是否以 '_' 字符开头。

但是我发现编译器在处理某些表达式时会定义一些变量。

例如:</p>

int main() {
  int arr[3] = {0, 1, 2};
  for(auto &i : arr) {
    i++;
  }
}

在处理'for(auto &i : arr)'表达式时,编译器将分别定义三个名为'__begin1、__end1、__range1'的变量,这与我的命名检查相匹配,但我想忽略这些编译器定义的变量。

warning: variable_v name '__begin1' should not start with '_' [readability-ks-variable-naming]
  for(auto &i : arr) {
              ^
warning: variable_v name '__end1' should not start with '_' [readability-ks-variable-naming]

warning: variable_v name '__range1' should not start with '_' [readability-ks-variable-naming]
  for(auto &i : arr) {
                ^

如何在 Clang AST 中仅识别用户定义的变量?

4

0 回答 0