Checks: >
  bugprone-*,
  cert-*,
  concurrency-*,
  cppcoreguidelines-*,
  misc-*,
  modernize-*,
  performance-*,
  portability-*,
  readability-*,
  -# not applicable at all,
  -bugprone-easily-swappable-parameters,
  -bugprone-implicit-widening-of-multiplication-result,
  -bugprone-macro-parentheses,
  -cppcoreguidelines-avoid-c-arrays,
  -cppcoreguidelines-avoid-magic-numbers,
  -cppcoreguidelines-avoid-non-const-global-variables,
  -cppcoreguidelines-macro-usage,
  -cppcoreguidelines-non-private-member-variables-in-classes,
  -cppcoreguidelines-owning-memory,
  -cppcoreguidelines-pro-bounds-array-to-pointer-decay,
  -cppcoreguidelines-pro-bounds-constant-array-index,
  -cppcoreguidelines-pro-bounds-pointer-arithmetic,
  -cppcoreguidelines-pro-type-const-cast,
  -cppcoreguidelines-pro-type-reinterpret-cast,
  -cppcoreguidelines-pro-type-union-access,
  -cppcoreguidelines-pro-type-vararg,
  -cppcoreguidelines-special-member-functions,
  -cppcoreguidelines-virtual-class-destructor,
  -misc-no-recursion,
  -misc-non-private-member-variables-in-classes,
  -misc-unused-parameters,
  -modernize-avoid-c-arrays,
  -modernize-pass-by-value,
  -modernize-use-auto,
  -modernize-use-nodiscard,
  -modernize-use-trailing-return-type,
  -modernize-use-using,
  -readability-function-cognitive-complexity,
  -readability-function-size,
  -readability-identifier-length,
  -readability-implicit-bool-conversion,
  -readability-isolate-declaration,
  -readability-magic-numbers,
  -readability-named-parameter,
  -readability-redundant-access-specifiers,
  -readability-simplify-boolean-expr,
  -readability-uppercase-literal-suffix,
  -# only sometimes useful,
  -bugprone-narrowing-conversions,
  -cert-dcl58-cpp,
  -cert-err33-c,
  -cert-err58-cpp,
  -clang-analyzer-core.CallAndMessage,
  -clang-analyzer-cplusplus.NewDelete,
  -clang-analyzer-cplusplus.NewDeleteLeaks,
  -concurrency-mt-unsafe,
  -cppcoreguidelines-init-variables,
  -cppcoreguidelines-narrowing-conversions,
  -cppcoreguidelines-prefer-member-initializer,
  -cppcoreguidelines-pro-type-static-cast-downcast,
  -misc-definitions-in-headers,
  -modernize-concat-nested-namespaces,
  -modernize-loop-convert,
  -modernize-raw-string-literal,
  -modernize-unary-static-assert,
  -performance-no-automatic-move,
  -readability-convert-member-functions-to-static,
  -readability-else-after-return,
  -readability-redundant-declaration,
  -# obsoleted,
  -cert-dcl21-cpp

CheckOptions:
  - { key: cppcoreguidelines-explicit-virtual-functions.IgnoreDestructors, value: true }
  - { key: modernize-use-override.IgnoreDestructors, value: true }
  - { key: performance-for-range-copy.AllowedTypes, value: "QJsonValue" }
  - { key: performance-for-range-copy.WarnOnAllAutoCopies, value: true }
  - { key: readability-braces-around-statements.ShortStatementLines, value: 3 }

HeaderFilterRegex: ".+/src/.*\\.h"
WarningsAsErrors: "*"