---
  InheritParentConfig: true
  Checks:          'bugprone-argument-comment,
                    bugprone-assert-side-effect,
                    bugprone-bitwise-pointer-cast,
                    bugprone-casting-through-void,
                    bugprone-chained-comparison,
                    bugprone-compare-pointer-to-member-virtual-function,
                    bugprone-crtp-constructor-accessibility,
                    bugprone-dangling-handle,
                    # bugprone-easily-swappable-parameters,
                    bugprone-empty-catch,
                    bugprone-inaccurate-erase,
                    bugprone-inc-dec-in-conditions,
                    bugprone-incorrect-enable-if,
                    bugprone-incorrect-enable-shared-from-this,
                    bugprone-multi-level-implicit-pointer-conversion,
                    bugprone-multiple-new-in-one-expression,
                    bugprone-non-zero-enum-to-bool-conversion,
                    bugprone-nondeterministic-pointer-iteration-order,
                    bugprone-optional-value-conversion,
                    bugprone-pointer-arithmetic-on-polymorphic-object,
                    bugprone-return-const-ref-from-parameter,
                    bugprone-standalone-empty,
                    bugprone-string-constructor,
                    bugprone-string-integer-assignment,
                    bugprone-suspicious-realloc-usage,
                    bugprone-suspicious-stringview-data-usage,
                    bugprone-switch-missing-default-case,
                    bugprone-tagged-union-member-count,
                    bugprone-unique-ptr-array-mismatch,
                    bugprone-unsafe-functions,
                    bugprone-unused-local-non-trivial-variable,
                    bugprone-unused-raii,
                    bugprone-use-after-move,
                    bugprone-assignment-in-if-condition,
                    bugprone-bad-signal-to-kill-thread,
                    bugprone-bool-pointer-implicit-conversion,
                    bugprone-branch-clone,
                    bugprone-copy-constructor-init,
                    bugprone-dynamic-static-initializers,
                    bugprone-exception-escape,
                    bugprone-fold-init-type,
                    bugprone-forward-declaration-namespace,
                    bugprone-forwarding-reference-overload,
                    bugprone-implicit-widening-of-multiplication-result,
                    bugprone-incorrect-roundings,
                    bugprone-infinite-loop,
                    bugprone-integer-division,
                    bugprone-lambda-function-name,
                    bugprone-macro-parentheses,
                    bugprone-macro-repeated-side-effects,
                    bugprone-misplaced-operator-in-strlen-in-alloc,
                    bugprone-misplaced-pointer-arithmetic-in-alloc,
                    bugprone-misplaced-widening-cast,
                    bugprone-move-forwarding-reference,
                    bugprone-multiple-statement-macro,
                    bugprone-narrowing-conversions,
                    bugprone-no-escape,
                    bugprone-not-null-terminated-result,
                    bugprone-parent-virtual-call,
                    bugprone-posix-return,
                    bugprone-redundant-branch-condition,
                    bugprone-reserved-identifier,
                    bugprone-shared-ptr-array-mismatch,
                    bugprone-signal-handler,
                    bugprone-signed-char-misuse,
                    bugprone-sizeof-container,
                    bugprone-sizeof-expression,
                    bugprone-spuriously-wake-up-functions,
                    bugprone-string-literal-with-embedded-nul,
                    bugprone-stringview-nullptr,
                    bugprone-suspicious-enum-usage,
                    bugprone-suspicious-include,
                    bugprone-suspicious-memory-comparison,
                    bugprone-suspicious-memset-usage,
                    bugprone-suspicious-missing-comma,
                    bugprone-suspicious-semicolon,
                    bugprone-suspicious-string-compare,
                    bugprone-swapped-arguments,
                    bugprone-terminating-continue,
                    bugprone-throw-keyword-missing,
                    bugprone-too-small-loop-variable,
                    # bugprone-unchecked-optional-access,
                    bugprone-undefined-memory-manipulation,
                    bugprone-undelegated-constructor,
                    bugprone-unhandled-exception-at-new,
                    bugprone-unhandled-self-assignment,
                    bugprone-unused-return-value,
                    bugprone-virtual-near-miss,
                    clang-analyzer-core.CallAndMessage,
                    clang-analyzer-core.DivideZero,
                    clang-analyzer-core.DynamicTypePropagation,
                    clang-analyzer-core.NonNullParamChecker,
                    clang-analyzer-core.NullDereference,
                    clang-analyzer-core.StackAddressEscape,
                    clang-analyzer-core.UndefinedBinaryOperatorResult,
                    clang-analyzer-core.uninitialized.ArraySubscript,
                    clang-analyzer-core.uninitialized.Assign,
                    clang-analyzer-core.uninitialized.Branch,
                    clang-analyzer-core.uninitialized.CapturedBlockVariable,
                    clang-analyzer-core.uninitialized.UndefReturn,
                    clang-analyzer-core.VLASize,
                    clang-analyzer-cplusplus.InnerPointer,
                    clang-analyzer-cplusplus.Move,
                    clang-analyzer-cplusplus.NewDelete,
                    clang-analyzer-cplusplus.NewDeleteLeaks,
                    clang-analyzer-deadcode.DeadStores,
                    clang-analyzer-nullability.NullableDereferenced,
                    clang-analyzer-nullability.NullablePassedToNonnull,
                    clang-analyzer-nullability.NullableReturnedFromNonnull,
                    clang-analyzer-nullability.NullPassedToNonnull,
                    clang-analyzer-nullability.NullReturnedFromNonnull,
                    clang-analyzer-optin.cplusplus.UninitializedObject,
                    clang-analyzer-optin.cplusplus.VirtualCall,
                    clang-analyzer-security.FloatLoopCounter,
                    clang-analyzer-security.insecureAPI.bcmp,
                    clang-analyzer-security.insecureAPI.bcopy,
                    clang-analyzer-security.insecureAPI.bzero,
                    clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling,
                    clang-analyzer-security.insecureAPI.getpw,
                    clang-analyzer-security.insecureAPI.gets,
                    clang-analyzer-security.insecureAPI.mkstemp,
                    clang-analyzer-security.insecureAPI.mktemp,
                    clang-analyzer-security.insecureAPI.rand,
                    clang-analyzer-security.insecureAPI.strcpy,
                    clang-analyzer-security.insecureAPI.UncheckedReturn,
                    clang-analyzer-security.insecureAPI.vfork,
                    clang-analyzer-valist.CopyToSelf,
                    clang-analyzer-valist.Uninitialized,
                    clang-analyzer-valist.Unterminated,
                    google-build-namespaces,
                    google-build-using-namespace,
                    google-default-arguments,
                    google-global-names-in-headers,
                    google-objc-avoid-nsobject-new,
                    google-objc-avoid-throwing-exception,
                    google-objc-function-naming,
                    google-objc-global-variable-declaration,
                    google-readability-avoid-underscore-in-googletest-name,
                    google-readability-casting,
                    google-readability-todo,
                    google-runtime-int,
                    google-runtime-operator,
                    google-runtime-references,
                    google-upgrade-googletest-case,
                    misc-confusable-identifiers,
                    misc-const-correctness,
                    misc-definitions-in-headers,
                    misc-include-cleaner,
                    misc-misleading-bidirectional,
                    misc-misleading-identifier,
                    misc-misplaced-const,
                    misc-new-delete-overloads,
                    misc-no-recursion,
                    misc-non-copyable-objects,
                    # misc-non-private-member-variables-in-classes,
                    misc-redundant-expression,
                    misc-static-assert,
                    misc-throw-by-value-catch-by-reference,
                    misc-unconventional-assign-operator,
                    misc-uniqueptr-reset-release,
                    misc-unused-alias-decls,
                    misc-unused-parameters,
                    misc-unused-using-decls,
                    # misc-use-internal-linkage,
                    # modernize-avoid-c-arrays,
                    modernize-deprecated-headers,
                    modernize-deprecated-ios-base-aliases,
                    modernize-macro-to-enum,
                    modernize-pass-by-value,
                    modernize-raw-string-literal,
                    modernize-replace-auto-ptr,
                    modernize-replace-disallow-copy-and-assign-macro,
                    modernize-return-braced-init-list,
                    modernize-unary-static-assert,
                    modernize-use-auto,
                    modernize-use-integer-sign-comparison,
                    # modernize-use-nodiscard,
                    modernize-use-uncaught-exceptions,
                    modernize-use-using,
                    objc-assert-equals,
                    objc-avoid-nserror-init,
                    objc-dealloc-in-category,
                    objc-forbidden-subclassing,
                    objc-missing-hash,
                    objc-nsdate-formatter,
                    objc-nsinvocation-argument-lifetime,
                    objc-property-declaration,
                    objc-super-self,
                    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-no-int-to-ptr,
                    performance-noexcept-move-constructor,
                    performance-trivially-destructible,
                    performance-type-promotion-in-math-fn,
                    performance-unnecessary-copy-initialization,
                    performance-unnecessary-value-param,
                    portability-restrict-system-includes,
                    portability-simd-intrinsics,
                    readability-avoid-const-params-in-decls,
                    # readability-avoid-return-with-void-value,
                    readability-braces-around-statements,
                    readability-const-return-type,
                    readability-container-contains,
                    readability-container-data-pointer,
                    readability-container-size-empty,
                    readability-convert-member-functions-to-static,
                    readability-delete-null-pointer,
                    readability-deleted-default,
                    readability-duplicate-include,
                    readability-else-after-return,
                    readability-enum-initial-value,
                    readability-function-size,
                    readability-identifier-naming,
                    readability-implicit-bool-conversion,
                    readability-inconsistent-declaration-parameter-name,
                    readability-isolate-declaration,
                    # readability-magic-numbers,
                    readability-make-member-function-const,
                    readability-misleading-indentation,
                    readability-misplaced-array-index,
                    readability-named-parameter,
                    readability-non-const-parameter,
                    readability-qualified-auto,
                    readability-redundant-access-specifiers,
                    readability-redundant-control-flow,
                    readability-redundant-declaration,
                    readability-redundant-function-ptr-dereference,
                    readability-redundant-inline-specifier,
                    readability-redundant-preprocessor,
                    readability-redundant-smartptr-get,
                    readability-redundant-string-cstr,
                    readability-redundant-string-init,
                    # readability-simplify-boolean-expr,
                    readability-simplify-subscript-expr,
                    readability-static-accessed-through-instance,
                    readability-static-definition-in-anonymous-namespace,
                    readability-string-compare,
                    readability-suspicious-call-argument,
                    readability-uniqueptr-delete-release,
                    readability-uppercase-literal-suffix,
                    readability-use-anyofallof'
  CheckOptions:
    - key:          readability-implicit-bool-conversion.AllowPointerConditions
      value:        1
    - key:          misc-const-correctness.WarnPointersAsValues
      value:        1
    - key:          misc-const-correctness.TransformPointersAsValues
      value:        1
    # Override parent config
    - key:          modernize-use-transparent-functors.SafeMode
      value:        0
    - key:          modernize-use-emplace.IgnoreImplicitConstructors
      value:        0
...
