# Define the checks we want to use and remove with comments as to why.
#
# Here is a list of the quirks with clang-tidy file format:
# - no apostrophes in the comments
# - every comment line in the checks must end with a comma
# - every line in the checks must start at the beginning of the line
Checks: '*,
-android-*,
-bugprone-exception-escape,
# complains about Catch macros having infinite loops,
-bugprone-infinite-loop,
-bugprone-macro-parentheses,
# many static variables we use do not throw and if they do we,
# want to terminate anyway,
-cert-err58-cpp,
-cert-msc51-cpp,
-cert-msc32-c,
# checks for incorrectly implemented self-assignment,
# checks.  However, it is broken.,
-cert-oop54-cpp,
-cppcoreguidelines-avoid-c-arrays,
# too many inconvenient positives for us to deal with,
-cppcoreguidelines-avoid-magic-numbers,
# false positives,
-cppcoreguidelines-c-copy-assignment-signature,
# sometimes macros are the right answer.,
-cppcoreguidelines-macro-usage,
# we want to use malloc with unique_ptr because not initializing,
# the memory is faster.,
-cppcoreguidelines-no-malloc,
# public and protected member variables are fine,
-cppcoreguidelines-non-private-member-variables-in-classes,
-fuchsia-*,
# defaulting virtual functions in CoordinateMap,
-google-default-arguments,
# specifying int32_t and int64_t instead of just int,
-google-runtime-int,
# redundant with other checks,
-hicpp-*,
# We use pragma once instead of include guards,
-llvm-header-guard,
# Makes code less portable because some implementation-defined STL,
# types can be pointers or not.  Same as,
# readability-qualified-auto below,
-llvm-qualified-auto,
# We are not developing LLVM libc,
-llvmlibc-*,
# thinks constexpr variables in header files cause ODR violations,
-misc-definitions-in-headers,
# false positives,
-misc-noexcept-move-constructor,
-misc-non-private-member-variables-in-classes,
# false positives,
-misc-unconventional-assign-operator,
-modernize-raw-string-literal,
# should be used, but requires possibly a lot of code changes that,
# we do not have the resources for,
-modernize-use-nodiscard,
# this wants everything to use trailing return type syntax, which,
# is silly.,
-modernize-use-trailing-return-type,
-performance-noexcept-move-constructor,
# complains about decltype(auto),
-readability-const-return-type,
# style choice, discussed in issue #145,
-readability-else-after-return,
-llvm-else-after-return,
-readability-magic-numbers,
# Same as llvm-qualified-auto above.,
-readability-qualified-auto,
# We can have two of: methods are static when possible, static,
# methods are not called through instances, and methods of,
# calling, e.g., x.size(), are consistent across classes.  We,
# choose to lose this one.,
-readability-static-accessed-through-instance,
# we are okay with lower case,
-readability-uppercase-literal-suffix,'
WarningsAsErrors: '*'
# It is unclear if the header filter actually works or how to use it so
# just include all headers
HeaderFilterRegex: ''
AnalyzeTemporaryDtors: false
FormatStyle:     none
