WarningsAsErrors: '*'
HeaderFilterRegex: '.*\.hpp'
FormatStyle: file
Checks: >
  -*,
  bugprone-*,
  -bugprone-easily-swappable-parameters,
  concurrency-*,
  cppcoreguidelines-*,
  -cppcoreguidelines-owning-memory,
  -cppcoreguidelines-avoid-magic-numbers,
  -cppcoreguidelines-pro-bounds-constant-array-index,
  -cppcoreguidelines-avoid-const-or-ref-data-members,
  -cppcoreguidelines-non-private-member-variables-in-classes,
  google-build-using-namespace.
  google-explicit-constructor,
  google-global-names-in-headers,
  google-readability-casting,
  google-runtime-int,
  google-runtime-operator,
  misc-*,
  -misc-no-recursion,
  -misc-non-private-member-variables-in-classes,
  modernize-*,
  -modernize-return-braced-init-list,
  -modernize-use-trailing-return-type,
  performance-*,
  portability-std-allocator-const,
  readability-*,
  -readability-function-cognitive-complexity,
  -readability-function-size,
  -readability-identifier-length,
  -readability-magic-numbers,
  -readability-uppercase-literal-suffix,
  -readability-braces-around-statements,
  -readability-redundant-access-specifiers,
  -readability-else-after-return,
  tidyfox-*,
CheckOptions:
  performance-for-range-copy.WarnOnAllAutoCopies: true
  performance-inefficient-string-concatenation.StrictMode: true
  readability-braces-around-statements.ShortStatementLines: 1
  readability-identifier-naming.ClassCase: CamelCase
  readability-identifier-naming.ConstantCase: UPPER_CASE
  readability-identifier-naming.EnumCase: CamelCase
  readability-identifier-naming.EnumConstantCase: CamelCase
  readability-identifier-naming.FunctionCase: camelBack
  readability-identifier-naming.MemberCase: camelBack
  readability-identifier-naming.NamespaceCase: lower_case
  readability-identifier-naming.LocalConstantCase: camelBack
  readability-identifier-naming.MethodCase: camelBack
  readability-identifier-naming.ParameterCase: camelBack
  readability-identifier-naming.VariableCase: camelBack

  # does not appear to work
  readability-operators-representation.BinaryOperators: '&&;&=;&;|;~;!;!=;||;|=;^;^='
  readability-operators-representation.OverloadedOperators: '&&;&=;&;|;~;!;!=;||;|=;^;^='