Add .clang-tidy
diff --git a/.clang-tidy b/.clang-tidy
new file mode 100644
index 0000000..9a544ed
--- /dev/null
+++ b/.clang-tidy
@@ -0,0 +1,54 @@
+Checks: '*,
+         -altera-id-dependent-backward-branch,
+         -altera-struct-pack-align,
+         -altera-unroll-loops,
+         -android-cloexec-fopen,
+         -bugprone-easily-swappable-parameters,
+         -cert-err58-cpp,
+         -concurrency-mt-unsafe,
+         -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-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-no-recursion,
+         -misc-non-private-member-variables-in-classes,
+         -modernize-concat-nested-namespaces,
+         -modernize-use-nodiscard,
+         -modernize-use-trailing-return-type,
+         -readability-function-cognitive-complexity,
+         -readability-function-size,
+         -readability-identifier-length,
+         -readability-magic-numbers,
+         -readability-redundant-access-specifiers,
+         -readability-uppercase-literal-suffix'
+
+CheckOptions:
+  - key: hicpp-special-member-functions.AllowSoleDefaultDtor
+    value: 1
+
+WarningsAsErrors: '*'
+
+HeaderFilterRegex: '.*h$'