# Here is an explanation for why some of the checks are disabled: # bugprone-easily-swappable-parameters: This check would require significant # refactoring effort. # bugprone-unchecked-optional-access: Too many false positives. For example, # an explicit comparison with std::nullopt isn't considered a check. # cppcoreguidelines-avoid-const-or-ref-data-members: We believe, ref data # members are a good way to express ownership, and const data members improve # readability. # cppcoreguidelines-rvalue-reference-param-not-moved: Too many false positives, # especially with partial moves from STL containers. # misc-const-correctness: Too many false positives, especially with STL # containers. # misc-include-cleaner: There is no way for symbol mapping. For example, this # check requires to delete the "gsl/gsl" header, but at the same time asks to # include one for gsl::not_null. # misc-use-anonymous-namespace: This check would require significant refactoring # effort, but wouldn't improve readability equally. # misc-no-recursion: There are legitimate uses for us: we use recursion for # trees a lot. # modernize-return-braced-init-list: We think removing typenames and using only # braced-init can hurt readability. # performance-avoid-endl: There are too many legitimate uses of std::endl for # us. # readability-function-cognitive-complexity: This check would get triggered by # most uses of the catch2 test library. # readability-identifier-length: We would like to enable this check, but it # would require significant refactoring effort. # readability-redundant-member-init: Those are not redundant for structs, but # clang-tidy keeps reporting this as an error. FormatStyle: Google Checks: >- *,-abseil-*,-altera-*,-android-*,-boost-*,-cert-*,-darwin-*,-fuchsia-*,-linuxkernel-*,-llvm-*,-llvmlibc-*,-mpi-*,-objc-*,-zircon-*, -bugprone-easily-swappable-parameters,-bugprone-unchecked-optional-access, -clang-analyzer-cplusplus.NewDeleteLeaks, -clang-diagnostic-unused-command-line-argument, -concurrency-mt-unsafe, -cppcoreguidelines-avoid-const-or-ref-data-members,-cppcoreguidelines-rvalue-reference-param-not-moved, -misc-const-correctness,-misc-include-cleaner,-misc-use-anonymous-namespace,-misc-no-recursion, -modernize-return-braced-init-list, -performance-avoid-endl, -readability-function-cognitive-complexity,-readability-identifier-length,-readability-redundant-member-init WarningsAsErrors: '*' CheckOptions: - { key: misc-non-private-member-variables-in-classes.IgnoreClassesWithAllMemberVariablesBeingPublic, value: '1' } - { key: readability-identifier-naming.ClassCase, value: CamelCase } - { key: readability-identifier-naming.EnumCase, value: CamelCase } - { key: readability-identifier-naming.StructCase, value: CamelCase } - { key: readability-identifier-naming.TypeTemplateParameterCase, value: CamelCase } - { key: readability-identifier-naming.ConstexprVariableCase, value: CamelCase } - { key: readability-identifier-naming.ConstexprVariablePrefix, value: k } - { key: readability-identifier-naming.GlobalConstantCase, value: CamelCase } - { key: readability-identifier-naming.GlobalConstantPrefix, value: k } - { key: readability-identifier-naming.MemberConstantCase, value: CamelCase } - { key: readability-identifier-naming.MemberConstantPrefix, value: k } - { key: readability-identifier-naming.StaticConstantCase, value: CamelCase } - { key: readability-identifier-naming.StaticConstantPrefix, value: k } - { key: readability-identifier-naming.ValueTemplateParameterCase, value: CamelCase } - { key: readability-identifier-naming.ValueTemplateParameterPrefix, value: k } - { key: readability-identifier-naming.VariableCase, value: lower_case } - { key: readability-identifier-naming.ClassMemberCase, value: lower_case } - { key: readability-identifier-naming.PrivateMemberSuffix, value: _ } - { key: readability-identifier-naming.ProtectedMemberSuffix, value: _ }