WarningsAsErrors: '*'
HeaderFilterRegex: '.*\.hpp'
FormatStyle: 'file'
Checks: >
  -*,
  bugprone-*,
  -bugprone-easily-swappable-parameters,
  -bugprone-forward-declaration-namespace,
  -bugprone-forward-declaration-namespace,
  -bugprone-macro-parentheses,
  -bugprone-narrowing-conversions,
  -bugprone-branch-clone,
  -bugprone-assignment-in-if-condition,
  concurrency-*,
  -concurrency-mt-unsafe,
  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,
  -cppcoreguidelines-avoid-goto,
  -cppcoreguidelines-pro-bounds-array-to-pointer-decay,
  -cppcoreguidelines-avoid-do-while,
  -cppcoreguidelines-avoid-non-const-global-variables,
  -cppcoreguidelines-special-member-functions,
  -cppcoreguidelines-explicit-virtual-functions,
  -cppcoreguidelines-avoid-c-arrays,
  -cppcoreguidelines-pro-bounds-pointer-arithmetic,
  -cppcoreguidelines-narrowing-conversions,
  -cppcoreguidelines-pro-type-union-access,
  -cppcoreguidelines-pro-type-member-init,
  -cppcoreguidelines-macro-usage,
  -cppcoreguidelines-macro-to-enum,
  -cppcoreguidelines-init-variables,
  -cppcoreguidelines-pro-type-cstyle-cast,
  -cppcoreguidelines-pro-type-vararg,
  -cppcoreguidelines-pro-type-reinterpret-cast,
  google-global-names-in-headers,
  -google-readability-casting,
  google-runtime-operator,
  misc-*,
  -misc-unused-parameters,
  -misc-no-recursion,
  -misc-non-private-member-variables-in-classes,
  -misc-include-cleaner,
  -misc-use-anonymous-namespace,
  -misc-const-correctness,
  modernize-*,
  -modernize-return-braced-init-list,
  -modernize-use-trailing-return-type,
  -modernize-use-using,
  -modernize-use-override,
  -modernize-avoid-c-arrays,
  -modernize-macro-to-enum,
  -modernize-loop-convert,
  -modernize-use-nodiscard,
  -modernize-pass-by-value,
  -modernize-use-auto,
  performance-*,
  -performance-avoid-endl,
  -performance-unnecessary-value-param,
  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,
  -readability-container-data-pointer,
  -readability-implicit-bool-conversion,
  -readability-avoid-nested-conditional-operator,
  -readability-redundant-member-init,
  -readability-redundant-string-init,
  -readability-avoid-const-params-in-decls,
  -readability-named-parameter,
  -readability-convert-member-functions-to-static,
  -readability-qualified-auto,
  -readability-make-member-function-const,
  -readability-isolate-declaration,
  -readability-inconsistent-declaration-parameter-name,
  -clang-diagnostic-error,

CheckOptions:
  performance-for-range-copy.WarnOnAllAutoCopies: true
  performance-inefficient-string-concatenation.StrictMode: true
  readability-braces-around-statements.ShortStatementLines: 0
  readability-identifier-naming.ClassCase: CamelCase
  readability-identifier-naming.ClassIgnoredRegexp: I.*
  readability-identifier-naming.ClassPrefix: C # We can't use regex here?!?!?!?
  readability-identifier-naming.EnumCase: CamelCase
  readability-identifier-naming.EnumPrefix: e
  readability-identifier-naming.EnumConstantCase: UPPER_CASE
  readability-identifier-naming.FunctionCase: camelBack
  readability-identifier-naming.NamespaceCase: CamelCase
  readability-identifier-naming.NamespacePrefix: N
  readability-identifier-naming.StructPrefix: S
  readability-identifier-naming.StructCase: CamelCase
