---
Checks: >
  bugprone-*,
  -bugprone-std-namespace-modification,
  -bugprone-exception-escape,
  -bugprone-macro-parentheses,
  -bugprone-crtp-constructor-accessibility,
  clang-diagnostic-*,
  -clang-diagnostic-pragma-once-outside-header,
  cppcoreguidelines-*,
  -cppcoreguidelines-macro-usage,
  -cppcoreguidelines-c-copy-assignment-signature,
  -cppcoreguidelines-avoid-const-or-ref-data-members,
  -cppcoreguidelines-use-enum-class,
  -cppcoreguidelines-pro-type-member-init,
  -cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,
  google-*,
  -google-readability-namespace-comments,
  llvm-*,
  -llvm-header-guard,
  -llvm-namespace-comment,
  -llvm-else-after-return,
  -llvm-prefer-static-over-anonymous-namespace,
  misc-*,
  -misc-no-recursion,
  modernize-*,
  -modernize-use-trailing-return-type,
  -modernize-use-nodiscard,
  performance-*,
  readability-*,
  -readability-named-parameter,
  -readability-redundant-access-specifiers,
  -readability-use-concise-preprocessor-directives,
  -readability-magic-numbers,

WarningsAsErrors: ''

HeaderFileExtensions:
  - ''
  - h
  - hh
  - hpp
  - hxx

ImplementationFileExtensions:
  - c
  - cc
  - cpp
  - cxx
  - tpp

HeaderFilterRegex: '.*'
ExcludeHeaderFilterRegex: ''

FormatStyle:     none
User:            samjaffe
SystemHeaders:   false
CheckOptions:
  - key: cppcoreguidelines-avoid-do-while.IgnoreMacros
    value: true
  - key: cppcoreguidelines-special-member-functions.AllowSoleDefaultDtor
    value: true
  - key: misc-non-private-member-variables-in-classes.IgnoreClassesWithAllMemberVariablesBeingPublic
    value: true
  - key: readability-identifier-naming.NamespaceCase
    value: lower_case
  - key: readability-identifier-naming.ClassCase
    value: CamelCase
  - key: readability-identifier-naming.StructCase
    value: CamelCase
  - key: readability-identifier-naming.PrivateMemberSuffix
    value: _
  - key: readability-identifier-naming.FunctionCase
    value: lower_case
  - key: readability-identifier-naming.VariableCase
    value: lower_case
  - key: readability-identifier-naming.ClassConstexprCase
    value: lower_case
  - key: readability-identifier-naming.ClassConstantCase
    value: lower_case
  - key: readability-identifier-naming.GlobalConstantCase
    value: UPPER_CASE
  - key: readability-identifier-length.IgnoredVariableNames
    value: "^(_|it|in|ss|[kv])$"
  - key: readability-identifier-length.IgnoredParameterNames
    value: "^(os|in|it)$"
  - key: readability-identifier-length.IgnoredLoopCounterNames
    value: "^[kvijk_]$"
  - key: readability-implicit-bool-conversion.AllowPointerConditions
    value: true
  - key: readability-implicit-bool-conversion.AllowLogicalOperatorConversion
    value: true
  - key: readability-function-cognitive-complexity.IgnoreMacros
    value: true
...

