---
Checks: [
    android-*,
    boost-*,
    bugprone-*,
    clang-analyzer-core*,
    clang-analyzer-cplusplus*,
    clang-analyzer-deadcode*,
    clang-analyzer-optin.cplusplus*,
    clang-analyzer-optin.performance.Padding,
    clang-analyzer-security*,
    clang-diagnostic-*,
    cppcoreguidelines-avoid-goto,
    cppcoreguidelines-no-malloc,
    google-*,
    llvm-*,
    misc-*,
    modernize-*,
    performance-*,
    portability-*,
    readability-*,
    -bugprone-branch-clone,
    -bugprone-easily-swappable-parameters,
    -bugprone-exception-escape,
    -bugprone-forward-declaration-namespace,
    -bugprone-forwarding-reference-overload,
    -bugprone-implicit-widening-of-multiplication-result,
    -bugprone-macro-parentheses,
    -bugprone-narrowing-conversions,
    -bugprone-reserved-identifier,
    -bugprone-signed-char-misuse,
    -bugprone-sizeof-expression,
    -bugprone-unchecked-optional-access,
    -bugprone-unhandled-exception-at-new,
    -bugprone-unhandled-self-assignment,
    -clang-analyzer-optin.cplusplus.UninitializedObject,
    -clang-analyzer-core.NonNullParamChecker,
    -clang-analyzer-core.NullDereference,
    -clang-analyzer-core.uninitialized.Assign,
    -clang-analyzer-core.UndefinedBinaryOperatorResult,
    -clang-analyzer-security.FloatLoopCounter,
    -google-build-explicit-make-pair,
    -google-build-namespaces,
    -google-build-using-namespace,
    -google-default-arguments,
    -google-explicit-constructor,
    -google-objc-global-variable-declaration,
    -google-readability-braces-around-statements,
    -google-readability-casting,
    -google-readability-function-size,
    -google-readability-function,
    -google-readability-namespace-comments,
    -google-readability-todo,
    -google-runtime-int,
    -google-runtime-references,
    -llvm-else-after-return,
    -llvm-header-guard,
    -llvm-include-order,
    -llvm-namespace-comment,
    -llvm-qualified-auto,
    -llvm-twine-local,
    -misc-confusable-identifiers,
    -misc-const-correctness,
    -misc-no-recursion,
    -misc-non-private-member-variables-in-classes,
    -misc-static-assert,
    -modernize-avoid-bind,
    -modernize-avoid-c-arrays,
    -modernize-concat-nested-namespaces,
    -modernize-macro-to-enum,
    -modernize-pass-by-value,
    -modernize-return-braced-init-list,
    -modernize-use-auto,
    -modernize-use-default-member-init,
    -modernize-use-emplace,
    -modernize-use-equals-default,
    -modernize-use-nodiscard,
    -modernize-use-nullptr,
    -modernize-use-trailing-return-type,
    -performance-move-const-arg,
    -performance-noexcept-move-constructor,
    -performance-no-int-to-ptr,
    -performance-unnecessary-value-param,
    -readability-avoid-const-params-in-decls,
    -readability-braces-around-statements,
    -readability-const-return-type,
    -readability-container-size-empty,
    -readability-convert-member-functions-to-static,
    -readability-else-after-return,
    -readability-function-cognitive-complexity,
    -readability-function-size,
    -readability-identifier-length,
    -readability-identifier-naming,
    -readability-implicit-bool-conversion,
    -readability-inconsistent-declaration-parameter-name,
    -readability-isolate-declaration,
    -readability-magic-numbers,
    -readability-make-member-function-const,
    -readability-named-parameter,
    -readability-non-const-parameter,
    -readability-qualified-auto,
    -readability-redundant-access-specifiers,
    -readability-redundant-declaration,
    -readability-redundant-member-init,
    -readability-redundant-string-init,
    -readability-simplify-boolean-expr,
    -readability-static-accessed-through-instance
    -readability-static-definition-in-anonymous-namespace,
    -readability-suspicious-call-argument,
    -readability-uppercase-literal-suffix,
    -readability-use-anyofallof,
    -modernize-loop-convert, # since C++20 this complains about reverse loops with iterators, but good ranges support only landed in clang 15
    -performance-enum-size,
    -misc-include-cleaner,
    -readability-redundant-inline-specifier,
    -readability-avoid-nested-conditional-operator,
    -readability-math-missing-parentheses,
    -readability-enum-initial-value,
    -boost-use-ranges,
    -modernize-use-constraints,
    -portability-template-virtual-member-function
]
WarningsAsErrors: '*'
HeaderFilterRegex: '.*'
CheckOptions:
  - key:   performance-unnecessary-value-param.AllowedTypes
    value: 'exception_ptr'
