---
Checks: >
  -*,
  bugprone-*,
  google-*,
  misc-*,
  modernize-*,
  performance-*,
  portability-*,
  readability-*,
  -bugprone-easily-swappable-parameters,
  -bugprone-exception-escape,
  -bugprone-implicit-widening-of-multiplication-result,
  -misc-const-correctness,
  -misc-non-private-member-variables-in-classes,
  -misc-include-cleaner,
  -modernize-use-trailing-return-type,
  -modernize-avoid-c-arrays,
  -performance-enum-size,
  -readability-identifier-length,
  -readability-function-cognitive-complexity,
  -readability-magic-numbers,
  -readability-named-parameter

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

CheckOptions:
  misc-unused-parameters.IgnoreVirtual: 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: CamelCase
  readability-identifier-naming.ClassMemberPrefix: 'm'
  readability-identifier-naming.ClassMethodCase: camelBack
  readability-identifier-naming.ConstantCase: lower_case
  readability-identifier-naming.ConstantMemberCase: lower_case
  readability-identifier-naming.ConstantMemberSuffix: ''
  readability-identifier-naming.ConstantParameterCase: lower_case
  readability-identifier-naming.ConstantPointerParameterCase: lower_case
  readability-identifier-naming.ConstexprFunctionCase: camelBack
  readability-identifier-naming.ConstexprMethodCase: camelBack
  readability-identifier-naming.ConstexprVariableCase: lower_case
  readability-identifier-naming.EnumCase: CamelCase
  readability-identifier-naming.EnumConstantCase: CamelCase
  readability-identifier-naming.FunctionCase: aNy_CasE
  readability-identifier-naming.GlobalConstantCase: UPPER_CASE
  readability-identifier-naming.GlobalConstantPointerCase: CamelCase
  readability-identifier-naming.GlobalVariableCase: CamelCase
  readability-identifier-naming.GlobalVariablePrefix: 'g'
  readability-identifier-naming.InlineNamespaceCase: CamelCase
  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.PublicMemberSuffix: ''
  readability-identifier-naming.PublicMethodCase: camelBack
  readability-identifier-naming.ScopedEnumConstantCase: CamelCase
  readability-identifier-naming.StaticConstantCase: lower_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