diff --git a/CMakeLists.txt b/CMakeLists.txt index 307da05..e8b7f16 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,18 +28,6 @@ elseif (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") add_compile_options(/constexpr:steps2000000000 /constexpr:depth1024 /arch:AVX) # I'll assume everybody has this since this is 2025. endif() -# --- AddressSanitizer for Debug builds --- -if(CMAKE_BUILD_TYPE STREQUAL "Debug") - message(STATUS "Enabling AddressSanitizer") - if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") - set(SANITIZER_FLAGS "/fsanitize=address") - else() - message(STATUS "Enabling UndefinedBehaviorSanitizer") - set(SANITIZER_FLAGS "-fsanitize=address -fsanitize=undefined") - endif() - add_compile_options(${SANITIZER_FLAGS}) - add_link_options(${SANITIZER_FLAGS}) -endif() add_compile_definitions(GENERATE_AT_RUNTIME) # --- Core Library --- set(SOURCES diff --git a/attacks.cpp b/attacks.cpp index 77200af..473114a 100644 --- a/attacks.cpp +++ b/attacks.cpp @@ -6,7 +6,7 @@ namespace chess::attacks { #define _POSSIBLY_CONSTEXPR const #endif template - _POSSIBLY_CONSTEXPR auto generate_magic_table() { + _POSSIBLY_CONSTEXPR std::pair, std::array> generate_magic_table() { std::array table{}; std::array attacks{}; @@ -44,13 +44,13 @@ namespace chess::attacks { return std::pair{ table, attacks }; } - _POSSIBLY_CONSTEXPR auto bishopData = + _POSSIBLY_CONSTEXPR std::pair, std::array> bishopData = generate_magic_table<_chess::_HyperbolaBishopAttacks, attacks::BishopMagics, 0x1480>(); - _POSSIBLY_CONSTEXPR auto BishopTable = bishopData.first; - _POSSIBLY_CONSTEXPR auto BishopAttacks = bishopData.second; + _POSSIBLY_CONSTEXPR std::array BishopTable = bishopData.first; + _POSSIBLY_CONSTEXPR std::array BishopAttacks = bishopData.second; - _POSSIBLY_CONSTEXPR auto rookData = + _POSSIBLY_CONSTEXPR std::pair, std::array> rookData = generate_magic_table<_chess::_HyperbolaRookAttacks, attacks::RookMagics, 0x19000>(); - _POSSIBLY_CONSTEXPR auto RookTable = rookData.first; - _POSSIBLY_CONSTEXPR auto RookAttacks = rookData.second; + _POSSIBLY_CONSTEXPR std::array RookTable = rookData.first; + _POSSIBLY_CONSTEXPR std::array RookAttacks = rookData.second; } \ No newline at end of file diff --git a/attacks.h b/attacks.h index 585f703..8bedbb7 100644 --- a/attacks.h +++ b/attacks.h @@ -2,6 +2,7 @@ #include "bitboard.h" #include "types.h" #include +#include namespace chess::attacks { // clang-format off // pre-calculated lookup table for pawn attacks