Checks: >
  -*,
  bugprone-assert-side-effect,
  bugprone-bool-pointer-implicit-conversion,
  bugprone-chained-comparison,
  bugprone-copy-constructor-init,
  bugprone-incorrect-roundings,
  bugprone-infinite-loop,
  bugprone-integer-division,
  bugprone-misplaced-operator-in-strlen-in-alloc,
  bugprone-misplaced-pointer-arithmetic-in-alloc,
  bugprone-misplaced-widening-cast,
  bugprone-non-zero-enum-to-bool-conversion,
  bugprone-pointer-arithmetic-on-polymorphic-object,
  bugprone-posix-return,
  bugprone-redundant-branch-condition,
  bugprone-return-const-ref-from-parameter,
  bugprone-sizeof-container,
  bugprone-standalone-empty,
  bugprone-string-literal-with-embedded-nul,
  bugprone-string-integer-assignment,
  bugprone-suspicious-include,
  bugprone-suspicious-memset-usage,
  bugprone-suspicious-missing-comma,
  bugprone-suspicious-realloc-usage,
  bugprone-suspicious-semicolon,
  bugprone-suspicious-string-compare,
  bugprone-swapped-arguments,
  bugprone-terminating-continue,
  bugprone-too-small-loop-variable,
  bugprone-undefined-memory-manipulation,
  bugprone-undelegated-constructor,
  bugprone-unhandled-self-assignment,
  bugprone-unused-raii,
  bugprone-unused-return-value,
  bugprone-use-after-move,
  bugprone-virtual-near-miss,
  cppcoreguidelines-misleading-capture-default-by-value,
  cppcoreguidelines-pro-type-const-cast,
  cppcoreguidelines-slicing,
  cert-oop58-cpp,
  cert-flp30-c,
  misc-confusable-identifiers,
  misc-definitions-in-headers,
  misc-header-include-cycle,
  misc-misplaced-const,
  misc-non-copyable-objects,
  misc-redundant-expression,
  misc-static-assert,
  misc-unconventional-assign-operator,
  misc-unused-alias-decls,
  performance-avoid-endl,
  performance-faster-string-find,
  performance-for-range-copy,
  performance-implicit-conversion-in-loop,
  performance-inefficient-algorithm,
  performance-inefficient-string-concatenation,
  performance-inefficient-vector-operation,
  performance-move-const-arg,
  performance-move-constructor-init,
  performance-no-automatic-move,
  performance-noexcept-destructor,
  performance-noexcept-move-constructor,
  performance-noexcept-swap,
  performance-trivially-destructible,
  performance-type-promotion-in-math-fn,
  performance-unnecessary-copy-initialization,
  performance-unnecessary-value-param,
  readability-avoid-return-with-void-value,
  readability-avoid-unconditional-preprocessor-if,
  readability-const-return-type,
  readability-container-contains,
  readability-container-data-pointer,
  readability-container-size-empty,
  readability-delete-null-pointer,
  readability-duplicate-include,
  readability-function-size,
  readability-identifier-naming,
  readability-misleading-indentation,
  readability-misplaced-array-index,
  readability-named-parameter,
  readability-operators-representation,
  readability-qualified-auto,
  readability-redundant-access-specifiers,
  readability-redundant-casting,
  readability-redundant-control-flow,
  readability-redundant-declaration,
  readability-redundant-function-ptr-dereference,
  readability-redundant-preprocessor,
  readability-redundant-string-cstr,
  readability-redundant-string-init,
  readability-reference-to-constructed-temporary,
  readability-simplify-subscript-expr,
  readability-static-accessed-through-instance,
  readability-static-definition-in-anonymous-namespace,
  readability-string-compare,
  readability-uniqueptr-delete-release,
  readability-use-anyofallof,
# TODO: Consider these
# bugprone-switch-missing-default-case
# bugprone-multi-level-implicit-pointer-conversion
# bugprone-branch-clone
# cert-err33-c
# cppcoreguidelines-narrowing-conversions
# cppcoreguidelines-init-variables
# cppcoreguidelines-explicit-virtual-functions
# cppcoreguidelines-special-member-functions
# llvm-include-order
# misc-const-correctness
# modernize-*
# performance-enum-size
# readability-function-cognitive-complexity
# readability-else-after-return
# readability-convert-member-functions-to-static
# readability-math-missing-parentheses
# readability-non-const-parameter
# readability-redundant-member-init
# readability-simplify-boolean-expr
# misc-include-cleaner
# google-explicit-constructor
# cppcoreguidelines-virtual-class-destructor
# readability-make-member-function-const
HeaderFilterRegex: "*"
CheckOptions:
  - key: readability-identifier-naming.LocalVariableCase
    value: lower_case
  - key: readability-identifier-naming.LocalVariableIgnoredRegexp
    value: '(KB|Thread|setDaemon|klassOop|nVMs|loadLibrary|getTicksFrequency|counterTime|System|M|R|s_)'
  - key: readability-identifier-naming.PrivateMemberPrefix
    value: _
  - key: readability-identifier-naming.ConstexprVariableCase
    value: UPPER_CASE
