Diagnostics:
  UnusedIncludes: Strict
  ClangTidy:
    Add:
      - cppcoreguidelines-*
      - clang-analyzer-core.*
      - bugprone-assert-side-effect
      - bugprone-branch-clone
      - bugprone-copy-constructor-init
      - bugprone-exception-escape
      - bugprone-forward-declaration-namespace
      - bugprone-incorrect-roundings
      - bugprone-infinite-loop
      - bugprone-integer-division
      - bugprone-macro-parentheses
      - bugprone-multiple-statement-macro
      - bugprone-parent-virtual-call
      - bugprone-redundant-branch-condition
      - bugprone-reserved-identifier
      - bugprone-sizeof-container
      - bugprone-sizeof-expression
      - bugprone-string-constructor
      - bugprone-string-integer-assignment
      - bugprone-suspicious-enum-usage
      - bugprone-suspicious-include
      - bugprone-suspicious-missing-comma
      - bugprone-suspicious-semicolon
      - bugprone-swapped-arguments
      - bugprone-terminating-continue
      - bugprone-too-small-loop-variable
      - llvm-namespace-comment
      - misc-definitions-in-headers
      - misc-redundant-expression
      - misc-unused-parameters
      - hicpp-signed-bitwise
      - readability-identifier-naming
      - readability-duplicate-include
      - readability-braces-around-statements
      - readability-implicit-bool-conversion
      - readability-inconsistent-declaration-parameter-name
      - readability-make-member-function-const
      - readability-misleading-indentation
      - readability-redundant-declaration
      - readability-redundant-preprocessor
      - readability-redundant-member-init
      - readability-simplify-boolean-expr
      - readability-static-accessed-through-instance
      - readability-uppercase-literal-suffix
    Remove:
      - readability-avoid-const-params-in-decls
      - readability-function-cognitive-complexity
      - readability-magic-numbers
      - readability-identifier-length
      - cppcoreguidelines-explicit-virtual-functions
      - cppcoreguidelines-init-variables
      - cppcoreguidelines-non-private-member-variables-in-classes
      - cppcoreguidelines-avoid-magic-numbers
      - cppcoreguidelines-owning-memory
      - cppcoreguidelines-pro-bounds-constant-array-index
      - cppcoreguidelines-special-member-functions
      - cppcoreguidelines-avoid-c-arrays
      - cppcoreguidelines-pro-type-reinterpret-cast
    CheckOptions:
      readability-identifier-naming.FunctionCase: camelBack
      readability-identifier-naming.NamespaceCase: lower_case
      readability-identifier-naming.ClassCase: CamelCase
      readability-identifier-naming.PrivateMemberPrefix: m_       
      readability-identifier-naming.StructCase: CamelCase
      readability-identifier-naming.VariableCase: camelBack
      readability-identifier-naming.GlobalConstantCase: UPPER_CASE
      readability-identifier-naming.EnumConstant: UPPER_CASE
