---
Checks          :
- bugprone-*,
- clang-analyzer-*,
- google-*,
- modernize-*,
- performance-*,
- portability-*,
- readability-*,
- -bugprone-easily-swappable-parameters,
- -bugprone-implicit-widening-of-multiplication-result,
- -bugprone-narrowing-conversions,
- -bugprone-reserved-identifier,
- -bugprone-signed-char-misuse,
- -bugprone-suspicious-include,
- -bugprone-unhandled-self-assignment,
- -clang-analyzer-cplusplus.NewDelete,
- -clang-analyzer-cplusplus.NewDeleteLeaks,
- -clang-analyzer-security.insecureAPI.rand,
- -clang-diagnostic-implicit-int-float-conversion,
- -clang-diagnostic-deprecated-declarations,
- -google-readability-avoid-underscore-in-googletest-name,
- -modernize-avoid-c-arrays,
- -modernize-use-nodiscard,
- -readability-convert-member-functions-to-static,
- -readability-identifier-length,
- -readability-function-cognitive-complexity,
- -readability-magic-numbers,
- -readability-make-member-function-const,
- -readability-qualified-auto,
- -readability-redundant-access-specifiers,
- -bugprone-exception-escape,
- -modernize-use-nodiscard,
- -readability-magic-numbers,

CheckOptions    :
- {key: readability-identifier-naming.ClassCase, value: CamelCase}
- {key: readability-identifier-naming.EnumCase, value: CamelCase}
- {key: readability-identifier-naming.FunctionCase, value: lower_case}
- {key: readability-identifier-naming.MemberCase, value: lower_case}
- {key: readability-identifier-naming.MemberSuffix, value: _}
- {key: readability-identifier-naming.NamespaceCase, value: lower_case}
- {key: readability-identifier-naming.StructCase, value: CamelCase}
- {key: readability-identifier-naming.UnionCase, value: CamelCase}
- {key: readability-identifier-naming.VariableCase, value: lower_case}
- {key: readability-identifier-naming.ConstantCase, value: CamelCase}
- {key: readability-identifier-naming.ConstantPrefix, value: k}
- {key: readability-identifier-naming.ConstantParameterCase, value: lower_case}
WarningsAsErrors: '*'

#### Disabled checks and why: #####
#
# -clang-analyzer-security.insecureAPI.rand, -clang-analyzer-security.insecureAPI.rand, -bugprone-unhandled-self-assignment,
#     These have not been investigated yet.
# -bugprone-too-small-loop-variable,
#     Complains about uint8_t or uint16_t when the limit on the loop is a container's .size() (size_t).
#     We usually do this when we know the maximum size of the container though, so propose leaving disabled.
# -modernize-avoid-c-arrays,
#     We use C-style arrays in vectorized computing. They're a little more ergonomic than std::array. Thoughts?
# -bugprone-exception-escape
#     Weird. No idea how to resolve.
