Checks:
  - clang-diagnostic-*
  - clang-analyzer-*
  - clang-analyzer-core.*
  - clang-analyzer-cplusplus.*
  - clang-analyzer-nullability.*
  - clang-analyzer-unix.*
##  - cppcoreguidelines-avoid-c-arrays
  - cppcoreguidelines-avoid-capturing-lambda-coroutines
##  - cppcoreguidelines-avoid-const-or-ref-data-members
  - cppcoreguidelines-avoid-do-while
  - cppcoreguidelines-avoid-goto
##  - cppcoreguidelines-avoid-magic-numbers
  - cppcoreguidelines-avoid-non-const-global-variables
  - cppcoreguidelines-avoid-reference-coroutine-parameters
  - cppcoreguidelines-c-copy-assignment-signature
  - cppcoreguidelines-explicit-virtual-functions
#  - cppcoreguidelines-init-variables
  - cppcoreguidelines-interfaces-global-init
##  - cppcoreguidelines-macro-to-enum
##  - cppcoreguidelines-macro-usage
  - cppcoreguidelines-misleading-capture-default-by-value
  - cppcoreguidelines-missing-std-forward
#  - cppcoreguidelines-narrowing-conversions
  - cppcoreguidelines-no-malloc
  - cppcoreguidelines-no-suspend-with-lock
#  - cppcoreguidelines-noexcept-destructor
#  - cppcoreguidelines-noexcept-move-operations
#  - cppcoreguidelines-noexcept-swap
#  - cppcoreguidelines-non-private-member-variables-in-classes
  - cppcoreguidelines-owning-memory
  - cppcoreguidelines-prefer-member-initializer
##  - 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-cstyle-cast
##  - cppcoreguidelines-pro-type-member-init
##  - cppcoreguidelines-pro-type-reinterpret-cast
  - cppcoreguidelines-pro-type-static-cast-downcast
  - cppcoreguidelines-pro-type-union-access
## - cppcoreguidelines-pro-type-vararg
  - cppcoreguidelines-rvalue-reference-param-not-moved
  - cppcoreguidelines-slicing
##  - cppcoreguidelines-special-member-functions
  - cppcoreguidelines-use-default-member-init
  - cppcoreguidelines-virtual-class-destructor
#  - performance-*
  - bugprone-move-forwarding-reference
  - cert-*
  - bugprone-*
  - -bugprone-easily-swappable-parameters
  - -bugprone-narrowing-conversions
  - -bugprone-implicit-widening-of-multiplication-result
  - -bugprone-unchecked-optional-access
WarningsAsErrors: 'bugprone-use-after-move'
UseColor: true
ExtraArgsBefore: ['-Wno-unknown-warning-option']
CheckOptions:
  - key: cppcoreguidelines-avoid-do-while.IgnoreMacros
    value: true
