Diagnostics:
  ClangTidy:
    Add:   [readability-braces-around-statements,
            readability-identifier-naming,
            misc*,google*,
            clang-analyzer-nullability*,
            clang-analyzer-*, cert-*,
            bugprone-*,
            cppcoreguidelines-*,
            modernize-deprecated-headers,
            modernize-loop-convert,
            modernize-avoid-c-arrays,
            concurrency-*,
            performance-*]
    Remove: [google-build-using-namespace,
            bugprone-undefined-memory-manipulation,
            cppcoreguidelines-pro-type-member-init,
            cppcoreguidelines-pro-type-union-access,
            misc-no-recursion,
            cert-env33-c,
            cert-err58-cpp,
            cert-msc*,
            concurrency-mt-unsafe,
            cppcoreguidelines-no-malloc,
            cppcoreguidelines-owning-memory,
            cppcoreguidelines-special-member-functions,
            google-readability-todo,
            bugprone-easily-swappable-parameters,
            cppcoreguidelines-pro-bounds-constant-array-index,
            cppcoreguidelines-explicit-virtual-functions,
            cppcoreguidelines-virtual-class-destructor,
            cppcoreguidelines-pro-type-reinterpret-cast,
            google-explicit-constructor,
            cppcoreguidelines-pro-bounds-array-to-pointer-decay,
            cppcoreguidelines-pro-bounds-pointer-arithmetic,
            cppcoreguidelines-pro-type-vararg,
            cppcoreguidelines-avoid-magic-numbers,
            cppcoreguidelines-avoid-c-arrays,
            cppcoreguidelines-avoid-non-const-global-variables,
            cppcoreguidelines-non-private-member-variables-in-classes]
    CheckOptions:
      misc-non-private-member-variables-in-classes.IgnoreClassesWithAllMemberVariablesBeingPublic: 1
      modernize-loop-convert.MinConfidence: risky
      readability-identifier-naming.VariableCase: lower_case
      readability-identifier-naming.GlobalVariableCase: lower_case
      readability-identifier-naming.ClassMemberCase: lower_case
      readability-identifier-naming.ClassMemberSuffix: _
      readability-identifier-naming.PrivateMemberCase: lower_case
      readability-identifier-naming.PrivateMemberSuffix: _
      readability-identifier-naming.ProtectedMemberCase: lower_case
      readability-identifier-naming.ProtectedMemberSuffix: _
      readability-identifier-naming.EnumCase: UPPER_CASE
      readability-identifier-naming.EnumConstantCase: UPPER_CASE
      readability-identifier-naming.MacroDefinitionCase: UPPER_CASE
      readability-identifier-naming.ConstantCase: UPPER_CASE
      readability-identifier-naming.ClassCase: CamelCase
      readability-identifier-naming.StructCase  : CamelCase
      readability-identifier-naming.FunctionCase: lower_case
      readability-identifier-naming.ClassMethodCase: CamelCase
      readability-identifier-naming.MethodCase: CamelCase