方舟編譯器學習筆記67 clang-tidy的檢查規則解析

前段時間,我爲方舟編譯器提交了一些clang-tidy的檢查規則,這些規則位於項目目錄之下的.clang-tidy文件之中。本文將逐條解讀一下這些規則。

1、readability-identifier-naming (規則2.1.1)

這條規則是用來檢查名命名規則的。在這條總的規則之下,還有關於具體要檢查項的key和value。比如:

  - key:             readability-identifier-naming.ClassCase
    value:           CamelCase

這裏ClassCase說明檢查的是類的命名,CamelCase說明要求的風格是大駝峯命名法。方舟裏涉及到命名規則,目前有CamelCase(大駝峯命名法)、camelBack(小駝峯命名法)和lower_case(小寫命名法)。涉及到的檢查項主要有ClassCase(類)、StructCase(結構體)、TypedefCase(Typedef)、EnumCase(枚舉)、EnumConstantCase(枚舉常量)、UnionCase(聯合)、NamespaceCase(命名空間)、FunctionCase(函數)、VariableCase(變量)、ConstantCase(常量)。

2、readability-function-size

這條規則是用來檢查函數的大小的。總規則之下,也包含了兩條具體的檢查項。

  - key:             readability-function-size.StatementThreshold
    value:           50

檢查函數內的語句不超過50條。(建議8.1.1)

  - key:             readability-function-size.ParameterThreshold
    value:           5

檢查函數的參數不超過5個。(建議8.3.3)

3、readability-braces-around-statements

語句必須在大括號之內。這裏主要是針對條件判斷之後進行執行的語句,比如if-else,哪怕是隻有一條語句,也應該在括號之內。(規則3.6.1,規則3.7.1)

4、readability-magic-numbers

魔鬼數字檢查。(建議9.1.3)

5、misc-unused-parameters

未使用函數參數檢查。

6、modernize-use-nullptr

檢查使用nullptr,而不是NULL或0。(規則10.1.3)

7、modernize-replace-auto-ptr

檢查禁止使用auto_ptr。(規則9.5.2)

8、modernize-use-noexcept

檢查不使用異常機制。(規則11.4.1)

9、modernize-use-override

檢查重寫虛函數時使用override關鍵字。(規則10.1.1)

10、performance-move-const-arg

檢查禁止使用std::move操作const對象。(規則10.1.4)

11、cppcoreguidelines-pro-type-cstyle-cast

不使用C風格轉換檢查。(規則9.3.1)

12、cppcoreguidelines-pro-type-reinterpret-cast

不使用reinterpret_cast 檢查。(建議9.3.2)

13、cppcoreguidelines-pro-type-const-cast

不使用const_cast檢查。(建議9.3.3)

 

——————

括號中的規則和建議等字樣,對應的是方舟編譯器編程規範中的具體要求。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章