# Copyright 2013-2024 Daniel Parker
# Distributed under the Boost license, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

# See https://github.com/danielaparker/jsoncons for latest version

# Revisit:
#  fuchsia-virtual-inheritance

Checks: '*,
         -llvm-else-after-return,
         -readability-else-after-return,
         -cppcoreguidelines-avoid-c-arrays,
         -hicpp-avoid-c-arrays,
         -modernize-avoid-c-arrays,
         -fuchsia-virtual-inheritance,
         -modernize-return-braced-init-list,
         -readability-avoid-nested-conditional-operator,
         -google-readability-casting,
         -bugprone-branch-clone,
         -hicpp-named-parameter,
         -readability-named-parameter,
         -bugprone-throw-keyword-missing,

         -portability-template-virtual-member-function,
         -bugprone-use-after-move,
         -hicpp-invalid-access-moved,

         -altera-id-dependent-backward-branch,
         -altera-struct-pack-align,
         -altera-unroll-loops,
         -android-cloexec-fopen,
         -boost-use-ranges,
         -bugprone-easily-swappable-parameters,
         -cert-err58-cpp,
         -concurrency-mt-unsafe,
         -cppcoreguidelines-avoid-const-or-ref-data-members,
         -cppcoreguidelines-avoid-do-while,
         -cppcoreguidelines-avoid-goto,
         -cppcoreguidelines-avoid-magic-numbers,
         -cppcoreguidelines-avoid-non-const-global-variables,
         -cppcoreguidelines-macro-usage,
         -cppcoreguidelines-pro-bounds-array-to-pointer-decay,
         -cppcoreguidelines-pro-bounds-constant-array-index,
         -cppcoreguidelines-pro-bounds-pointer-arithmetic,
         -cppcoreguidelines-pro-type-reinterpret-cast,
         -cppcoreguidelines-pro-type-union-access,
         -cppcoreguidelines-rvalue-reference-param-not-moved,
         -cppcoreguidelines-virtual-class-destructor,
         -fuchsia-default-arguments-calls,
         -fuchsia-default-arguments-declarations,
         -fuchsia-overloaded-operator,
         -google-explicit-constructor,
         -google-readability-function-size,
         -google-runtime-int,
         -google-runtime-references,
         -hicpp-avoid-goto,
         -hicpp-explicit-conversions,
         -hicpp-function-size,
         -hicpp-no-array-decay,
         -hicpp-no-assembler,
         -hicpp-signed-bitwise,
         -hicpp-uppercase-literal-suffix,
         -llvm-header-guard,
         -llvm-include-order,
         -llvmlibc-*,
         -misc-use-anonymous-namespace,
         -misc-confusable-identifiers,
         -misc-include-cleaner,
         -misc-no-recursion,
         -misc-non-private-member-variables-in-classes,
         -modernize-concat-nested-namespaces,
         -modernize-type-traits,
         -modernize-use-constraints,
         -modernize-use-designated-initializers,
         -modernize-use-integer-sign-comparison,
         -modernize-use-nodiscard,
         -modernize-use-ranges,
         -modernize-use-std-numbers,
         -modernize-use-trailing-return-type,
         -performance-enum-size,
         -readability-function-cognitive-complexity,
         -readability-function-size,
         -readability-identifier-length,
         -readability-magic-numbers,
         -readability-redundant-access-specifiers,
         -readability-simplify-boolean-expr,
         -readability-uppercase-literal-suffix,

         -readability-hicpp-named-parameter'

CheckOptions:
  - key: hicpp-special-member-functions.AllowSoleDefaultDtor
    value: 1

WarningsAsErrors: '*'
