---
Checks: >
  -*,
  bugprone-*,
  google-*,
  misc-*,
  modernize-*,
  performance-*,
  portability-*,
  readability-*,
  -misc-unused-using-decls,
  -performance-unnecessary-value-param,
  -misc-const-correctness,
  -misc-non-private-member-variables-in-classes,
  -misc-include-cleaner,
  -modernize-use-trailing-return-type,
  -modernize-avoid-c-arrays,
  -modernize-use-designated-initializers,
  -performance-enum-size,
  -readability-identifier-length,
  -readability-isolate-declaration,
  -readability-function-cognitive-complexity,
  -readability-magic-numbers,
  -readability-math-missing-parentheses,
  -readability-named-parameter,
  -readability-simplify-boolean-expr,
  -readability-use-anyofallof

WarningsAsErrors: "*"
HeaderFilterRegex: "(include/|src/).*"

CheckOptions:
  misc-unused-parameters.IgnoreVirtual: true
  modernize-type-traits.IgnoreMacros: true
  readability-implicit-bool-conversion.AllowPointerConditions: true
  readability-implicit-bool-conversion.AllowIntegerConditions: true
  readability-identifier-naming.AbstractClassCase: CamelCase
  readability-identifier-naming.ClassCase: CamelCase
  readability-identifier-naming.ClassConstantCase: CamelCase
  readability-identifier-naming.ClassMemberCase: lower_case
  readability-identifier-naming.ClassMethodCase: camelBack
  readability-identifier-naming.ConstantMemberCase: lower_case
  readability-identifier-naming.ConstantParameterCase: lower_case
  readability-identifier-naming.ConstantPointerParameterCase: lower_case
  readability-identifier-naming.EnumCase: CamelCase
  readability-identifier-naming.EnumConstantCase: CamelCase
  readability-identifier-naming.FunctionCase: camelBack
  readability-identifier-naming.GlobalConstantCase: CamelCase
  readability-identifier-naming.GlobalVariableCase: lower_case
  readability-identifier-naming.InlineNamespaceCase: aNy_CasE
  readability-identifier-naming.LocalConstantCase: lower_case
  readability-identifier-naming.LocalConstantPointerCase: lower_case
  readability-identifier-naming.LocalPointerCase: lower_case
  readability-identifier-naming.LocalVariableCase: lower_case
  readability-identifier-naming.MacroDefinitionCase: UPPER_CASE
  readability-identifier-naming.MemberCase: lower_case
  readability-identifier-naming.MemberSuffix: '_'
  readability-identifier-naming.MethodCase: camelBack
  readability-identifier-naming.NamespaceCase: aNy_CasE
  readability-identifier-naming.ParameterCase: lower_case
  readability-identifier-naming.ParameterPackCase: lower_case
  readability-identifier-naming.PointerParameterCase: lower_case
  readability-identifier-naming.PrivateMemberCase: lower_case
  readability-identifier-naming.PrivateMemberSuffix: '_'
  readability-identifier-naming.PrivateMethodCase: camelBack
  readability-identifier-naming.ProtectedMemberCase: lower_case
  readability-identifier-naming.ProtectedMemberSuffix: '_'
  readability-identifier-naming.ProtectedMethodCase: camelBack
  readability-identifier-naming.PublicMemberCase: lower_case
  readability-identifier-naming.PublicMethodCase: camelBack
  readability-identifier-naming.StaticConstantCase: UPPER_CASE
  readability-identifier-naming.StaticVariableCase: lower_case
  readability-identifier-naming.StructCase: CamelCase
  readability-identifier-naming.TemplateParameterCase: CamelCase
  readability-identifier-naming.TemplateTemplateParameterCase: CamelCase
  readability-identifier-naming.TypeAliasCase: CamelCase
  readability-identifier-naming.TypedefCase: CamelCase
  readability-identifier-naming.TypeTemplateParameterCase: CamelCase
  readability-identifier-naming.UnionCase: CamelCase
  readability-identifier-naming.ValueTemplateParameterCase: CamelCase
  readability-identifier-naming.VariableCase: lower_case
  readability-identifier-naming.VirtualMethodCase: camelBack
