有没有办法强制在 clang-format/clang-tidy 中对 class members/methods 使用 "this->"?
Is there a way to enforce using "this->" for class members/methods in clang-format/clang-tidy?
我到处搜索,但我可能用错了术语。我还没有找到这个选项。
我唯一找到的是这个未回答的问题(但是有点宽泛):CPP lint: Can you enforce use of this for class variables? .
从 clang-format 关于其样式 options 的文档来看,这似乎是不可能的。
考虑到 existing options,我认为 clang-format 不可能做到这一点,未来也不会。
主要原因是程序的工作方式。它不会将 C++ 代码解析为 AST,而是将文本标记化而不需要包含(定义它的成员和全局变量)而不是编译数据库(影响定义、包含路径……)它是甚至可以给它一段代码并重新格式化。
从问题的性质来看,如果它可以存在于 clang-tooling 内,则可能是编译器警告或 clang-tidy。由于这在编译时检查起来应该很便宜,因此可能会发出警告,尽管警告通常是关于全球公认的改进。我认为对此没有达成共识。
因此,剩下 clang-tidy。查看 the options,我没有看到该选项。我认为它可以作为 readability-*
检查,因为这里允许进行更多有争议的检查。不过,我觉得如果你想要这个,你应该自己写并提供给项目。
最后的个人说明:我不相信 this->
是一个好的解决方案,尽管也不是从 m_
开始所有事情(已经可能),或者不这样做。如果检查可以配置为 add/remove this->
就好了,这样人们就可以尝试一下了。
我到处搜索,但我可能用错了术语。我还没有找到这个选项。
我唯一找到的是这个未回答的问题(但是有点宽泛):CPP lint: Can you enforce use of this for class variables? .
从 clang-format 关于其样式 options 的文档来看,这似乎是不可能的。
考虑到 existing options,我认为 clang-format 不可能做到这一点,未来也不会。 主要原因是程序的工作方式。它不会将 C++ 代码解析为 AST,而是将文本标记化而不需要包含(定义它的成员和全局变量)而不是编译数据库(影响定义、包含路径……)它是甚至可以给它一段代码并重新格式化。
从问题的性质来看,如果它可以存在于 clang-tooling 内,则可能是编译器警告或 clang-tidy。由于这在编译时检查起来应该很便宜,因此可能会发出警告,尽管警告通常是关于全球公认的改进。我认为对此没有达成共识。
因此,剩下 clang-tidy。查看 the options,我没有看到该选项。我认为它可以作为 readability-*
检查,因为这里允许进行更多有争议的检查。不过,我觉得如果你想要这个,你应该自己写并提供给项目。
最后的个人说明:我不相信 this->
是一个好的解决方案,尽管也不是从 m_
开始所有事情(已经可能),或者不这样做。如果检查可以配置为 add/remove this->
就好了,这样人们就可以尝试一下了。