clang++ -std=c++17 -fconstexpr-steps=100000000  -O3 -flto -DEVALFILE=\"/home/vinechessengine/OpenBench/Client/Networks/9B9F2959\" -march=native -c src/chess/board_state.cpp -o src/chess/board_state.o
clang++ -std=c++17 -fconstexpr-steps=100000000  -O3 -flto -DEVALFILE=\"/home/vinechessengine/OpenBench/Client/Networks/9B9F2959\" -march=native -c src/chess/magics.cpp -o src/chess/magics.o
clang++ -std=c++17 -fconstexpr-steps=100000000  -O3 -flto -DEVALFILE=\"/home/vinechessengine/OpenBench/Client/Networks/9B9F2959\" -march=native -c src/chess/move_gen.cpp -o src/chess/move_gen.o
clang++ -std=c++17 -fconstexpr-steps=100000000  -O3 -flto -DEVALFILE=\"/home/vinechessengine/OpenBench/Client/Networks/9B9F2959\" -march=native -c src/chess/board.cpp -o src/chess/board.o
clang++ -std=c++17 -fconstexpr-steps=100000000  -O3 -flto -DEVALFILE=\"/home/vinechessengine/OpenBench/Client/Networks/9B9F2959\" -march=native -c src/chess/castle_rights.cpp -o src/chess/castle_rights.o
clang++ -std=c++17 -fconstexpr-steps=100000000  -O3 -flto -DEVALFILE=\"/home/vinechessengine/OpenBench/Client/Networks/9B9F2959\" -march=native -c src/chess/move.cpp -o src/chess/move.o
clang++ -std=c++17 -fconstexpr-steps=100000000  -O3 -flto -DEVALFILE=\"/home/vinechessengine/OpenBench/Client/Networks/9B9F2959\" -march=native -c src/tests/perft.cpp -o src/tests/perft.o
clang++ -std=c++17 -fconstexpr-steps=100000000  -O3 -flto -DEVALFILE=\"/home/vinechessengine/OpenBench/Client/Networks/9B9F2959\" -march=native -c src/tests/bench.cpp -o src/tests/bench.o
clang++ -std=c++17 -fconstexpr-steps=100000000  -O3 -flto -DEVALFILE=\"/home/vinechessengine/OpenBench/Client/Networks/9B9F2959\" -march=native -c src/main.cpp -o src/main.o
clang++ -std=c++17 -fconstexpr-steps=100000000  -O3 -flto -DEVALFILE=\"/home/vinechessengine/OpenBench/Client/Networks/9B9F2959\" -march=native -c src/data_gen/format/monty_format.cpp -o src/data_gen/format/monty_format.o
clang++ -std=c++17 -fconstexpr-steps=100000000  -O3 -flto -DEVALFILE=\"/home/vinechessengine/OpenBench/Client/Networks/9B9F2959\" -march=native -c src/data_gen/game_runner.cpp -o src/data_gen/game_runner.o
clang++ -std=c++17 -fconstexpr-steps=100000000  -O3 -flto -DEVALFILE=\"/home/vinechessengine/OpenBench/Client/Networks/9B9F2959\" -march=native -c src/data_gen/openings.cpp -o src/data_gen/openings.o
clang++ -std=c++17 -fconstexpr-steps=100000000  -O3 -flto -DEVALFILE=\"/home/vinechessengine/OpenBench/Client/Networks/9B9F2959\" -march=native -c src/search/game_tree.cpp -o src/search/game_tree.o
clang++ -std=c++17 -fconstexpr-steps=100000000  -O3 -flto -DEVALFILE=\"/home/vinechessengine/OpenBench/Client/Networks/9B9F2959\" -march=native -c src/search/searcher.cpp -o src/search/searcher.o
clang++ -std=c++17 -fconstexpr-steps=100000000  -O3 -flto -DEVALFILE=\"/home/vinechessengine/OpenBench/Client/Networks/9B9F2959\" -march=native -c src/search/node.cpp -o src/search/node.o
clang++ -std=c++17 -fconstexpr-steps=100000000  -O3 -flto -DEVALFILE=\"/home/vinechessengine/OpenBench/Client/Networks/9B9F2959\" -march=native -c src/search/tree_half.cpp -o src/search/tree_half.o
clang++ -std=c++17 -fconstexpr-steps=100000000  -O3 -flto -DEVALFILE=\"/home/vinechessengine/OpenBench/Client/Networks/9B9F2959\" -march=native -c src/search/thread.cpp -o src/search/thread.o
clang++ -std=c++17 -fconstexpr-steps=100000000  -O3 -flto -DEVALFILE=\"/home/vinechessengine/OpenBench/Client/Networks/9B9F2959\" -march=native -c src/search/time_manager.cpp -o src/search/time_manager.o
clang++ -std=c++17 -fconstexpr-steps=100000000  -O3 -flto -DEVALFILE=\"/home/vinechessengine/OpenBench/Client/Networks/9B9F2959\" -march=native -c src/uci/options.cpp -o src/uci/options.o
clang++ -std=c++17 -fconstexpr-steps=100000000  -O3 -flto -DEVALFILE=\"/home/vinechessengine/OpenBench/Client/Networks/9B9F2959\" -march=native -c src/uci/uci.cpp -o src/uci/uci.o
clang++ -std=c++17 -fconstexpr-steps=100000000  -O3 -flto -DEVALFILE=\"/home/vinechessengine/OpenBench/Client/Networks/9B9F2959\" -march=native -c src/eval/value_network.cpp -o src/eval/value_network.o
clang++ -std=c++17 -fconstexpr-steps=100000000  -O3 -flto -DEVALFILE=\"/home/vinechessengine/OpenBench/Client/Networks/9B9F2959\" -march=native -c src/eval/policy_network.cpp -o src/eval/policy_network.o
clang++ -std=c++17 -fconstexpr-steps=100000000  -O3 -flto -DEVALFILE=\"/home/vinechessengine/OpenBench/Client/Networks/9B9F2959\" -march=native -c src/eval/networks.cpp -o src/eval/networks.o
In file included from src/chess/magics.cpp:1:
In file included from src/chess/magics.hpp:6:
src/chess/bitboard.hpp:151:76: warning: defaulted comparison operators are a C++20 extension [-Wc++20-extensions]
    [[nodiscard]] constexpr bool operator==(Bitboard const &other) const = default;
                                                                           ^
src/chess/bitboard.hpp:186:39: error: no template named 'remove_cvref_t' in namespace 'std'; did you mean '__remove_cvref_t'?
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                                 ~~~~~^~~~~~~~~~~~~~
                                      __remove_cvref_t
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/type_traits:2248:5: note: '__remove_cvref_t' declared here
    using __remove_cvref_t
    ^
In file included from src/chess/magics.cpp:1:
In file included from src/chess/magics.hpp:6:
src/chess/bitboard.hpp:186:92: error: expected ')'
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                                                                                           ^
src/chess/bitboard.hpp:186:18: note: to match this '('
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                 ^
src/chess/bitboard.hpp:186:24: error: parameter declarator cannot be qualified
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                  ~~~~~^
src/chess/bitboard.hpp:186:24: error: parameter name cannot have template arguments
src/chess/bitboard.hpp:186:24: error: C++ requires a type specifier for all declarations
src/chess/bitboard.hpp:187:102: error: expected ')'
                  (std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, int> && rank_diff == 0)) &&
                                                                                                     ^
src/chess/bitboard.hpp:186:17: note: to match this '('
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                ^
src/chess/bitboard.hpp:186:9: error: C++ requires a type specifier for all declarations
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
        ^
src/chess/bitboard.hpp:190:7: error: 'nodiscard' attribute cannot be applied to types
    [[nodiscard]] constexpr Bitboard shift() const {
      ^
src/chess/bitboard.hpp:190:18: error: expected ';' at end of declaration list
    [[nodiscard]] constexpr Bitboard shift() const {
                 ^
                 ;
src/chess/bitboard.hpp:247:80: warning: defaulted comparison operators are a C++20 extension [-Wc++20-extensions]
        [[nodiscard]] constexpr bool operator==(Iterator const &other) const = default;
                                                                               ^
src/chess/bitboard.hpp:26:21: error: no member named 'popcount' in namespace 'std'; did you mean '__popcount'?
        return std::popcount(raw_);
               ~~~~~^~~~~~~~
                    __popcount
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:289:5: note: '__popcount' declared here
    __popcount(_Tp __x) noexcept
    ^
In file included from src/chess/magics.cpp:1:
In file included from src/chess/magics.hpp:6:
src/chess/bitboard.hpp:30:21: error: no member named 'countr_zero' in namespace 'std'; did you mean '__countr_zero'?
        return std::countr_zero(raw_);
               ~~~~~^~~~~~~~~~~
                    __countr_zero
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:248:5: note: '__countr_zero' declared here
    __countr_zero(_Tp __x) noexcept
    ^
In file included from src/chess/magics.cpp:1:
In file included from src/chess/magics.hpp:6:
src/chess/bitboard.hpp:34:33: error: no member named 'countl_zero' in namespace 'std'; did you mean '__countl_zero'?
        return raw_ ? 63 - std::countl_zero(raw_) : 64;
                           ~~~~~^~~~~~~~~~~
                                __countl_zero
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:195:5: note: '__countl_zero' declared here
    __countl_zero(_Tp __x) noexcept
    ^
In file included from src/chess/magics.cpp:1:
In file included from src/chess/magics.hpp:6:
src/chess/bitboard.hpp:38:21: error: no member named 'rotl' in namespace 'std'
        return std::rotl(raw_, shift);
               ~~~~~^
src/chess/bitboard.hpp:42:21: error: no member named 'rotr' in namespace 'std'
        return std::rotr(raw_, shift);
               ~~~~~^
src/chess/bitboard.hpp:58:28: error: invalid operands to binary expression ('Bitboard' and 'int')
        return (bb & raw_) != 0;
               ~~~~~~~~~~~ ^  ~
src/chess/bitboard.hpp:231:16: error: use of undeclared identifier 'ray_precomp'
        return ray_precomp<rank_diff, file_diff>[sq];
               ^
src/chess/bitboard.hpp:230:45: error: no return statement in constexpr function
    [[nodiscard]] static constexpr Bitboard get_ray_precomputed(Square sq) {
                                            ^
src/chess/bitboard.hpp:239:48: error: no member named 'countr_zero' in namespace 'std'; did you mean '__countr_zero'?
            return Square{static_cast<u8>(std::countr_zero(state_))};
                                          ~~~~~^~~~~~~~~~~
                                               __countr_zero
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:248:5: note: '__countr_zero' declared here
    __countr_zero(_Tp __x) noexcept
    ^
In file included from src/chess/board_state.cpp:1:
In file included from src/chess/board_state.hpp:6:
src/chess/bitboard.hpp:151:76: warning: defaulted comparison operators are a C++20 extension [-Wc++20-extensions]
    [[nodiscard]] constexpr bool operator==(Bitboard const &other) const = default;
                                                                           ^
src/chess/bitboard.hpp:186:39: error: no template named 'remove_cvref_t' in namespace 'std'; did you mean '__remove_cvref_t'?
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                                 ~~~~~^~~~~~~~~~~~~~
                                      __remove_cvref_t
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/type_traits:2248:5: note: '__remove_cvref_t' declared here
    using __remove_cvref_t
    ^
In file included from src/chess/board_state.cpp:1:
In file included from src/chess/board_state.hpp:6:
src/chess/bitboard.hpp:186:92: error: expected ')'
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                                                                                           ^
src/chess/bitboard.hpp:186:18: note: to match this '('
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                 ^
src/chess/bitboard.hpp:186:24: error: parameter declarator cannot be qualified
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                  ~~~~~^
src/chess/bitboard.hpp:186:24: error: parameter name cannot have template arguments
src/chess/bitboard.hpp:186:24: error: C++ requires a type specifier for all declarations
src/chess/bitboard.hpp:187:102: error: expected ')'
                  (std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, int> && rank_diff == 0)) &&
                                                                                                     ^
src/chess/bitboard.hpp:186:17: note: to match this '('
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                ^
src/chess/bitboard.hpp:186:9: error: C++ requires a type specifier for all declarations
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
        ^
src/chess/bitboard.hpp:190:7: error: 'nodiscard' attribute cannot be applied to types
    [[nodiscard]] constexpr Bitboard shift() const {
      ^
src/chess/bitboard.hpp:190:18: error: expected ';' at end of declaration list
    [[nodiscard]] constexpr Bitboard shift() const {
                 ^
                 ;
src/chess/bitboard.hpp:247:80: warning: defaulted comparison operators are a C++20 extension [-Wc++20-extensions]
        [[nodiscard]] constexpr bool operator==(Iterator const &other) const = default;
                                                                               ^
src/chess/bitboard.hpp:26:21: error: no member named 'popcount' in namespace 'std'; did you mean '__popcount'?
        return std::popcount(raw_);
               ~~~~~^~~~~~~~
                    __popcount
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:289:5: note: '__popcount' declared here
    __popcount(_Tp __x) noexcept
    ^
In file included from src/chess/board_state.cpp:1:
In file included from src/chess/board_state.hpp:6:
src/chess/bitboard.hpp:30:21: error: no member named 'countr_zero' in namespace 'std'; did you mean '__countr_zero'?
        return std::countr_zero(raw_);
               ~~~~~^~~~~~~~~~~
                    __countr_zero
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:248:5: note: '__countr_zero' declared here
    __countr_zero(_Tp __x) noexcept
    ^
In file included from In file included from src/chess/board_state.cpp:1:
In file included from src/chess/board_state.hpp:6:
src/chess/bitboard.hpp:34:33: error: no member named 'countl_zero' in namespace 'std'; did you mean '__countl_zero'?
        return raw_ ? 63 - std::countl_zero(raw_) : 64;
                           ~~~~~^~~~~~~~~~~
                                __countl_zero
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:195:5: note: '__countl_zero' declared here
    __countl_zero(_Tp __x) noexcept
    ^
In file included from In file included from src/chess/move.cpp:1:
src/chess/move.hpp:94:67: warning: defaulted comparison operators are a C++20 extension [-Wc++20-extensions]
    [[nodiscard]] constexpr bool operator==(Move const &) const = default;
                                                                  ^
src/chess/board_state.cpp:1:
In file included from src/chess/board_state.hpp:6:
src/chess/bitboard.hpp:38:21: error: no member named 'rotl' in namespace 'std'
        return std::rotl(raw_, shift);
               ~~~~~^
src/chess/bitboard.hpp:42:21: error: no member named 'rotr' in namespace 'std'
        return std::rotr(raw_, shift);
               ~~~~~^
src/chess/bitboard.hpp:58:28: error: invalid operands to binary expression ('Bitboard' and 'int')
        return (bb & raw_) != 0;
               ~~~~~~~~~~~ ^  ~
src/chess/bitboard.hppsrc/chess/magics.cpp:2:
In file included from src/chess/move_gen.hpp:4:
src/chess/../util/static_vector.hpp:33:23: error: no member named 'construct_at' in namespace 'std'
        T *res = std::construct_at(data() + size_, value);
                 ~~~~~^
:231:16: error: use of undeclared identifier 'ray_precomp'
        return ray_precomp<rank_diff, file_diff>[sq];
               ^
src/chess/bitboard.hpp:230:45: error: no return statement in constexpr function
    [[nodiscard]] static constexpr Bitboard get_ray_precomputed(Square sq) {
                                            ^
src/chess/bitboard.hpp:239:48: error: no member named 'countr_zero' in namespace 'std'; did you mean '__countr_zero'?
            return Square{static_cast<u8>(std::countr_zero(state_))};
                                          ~~~~~^~~~~~~~~~~
                                               __countr_zero
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:248:5: note: '__countr_zero' declared here
    __countr_zero(_Tp __x) noexcept
    ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
In file included from src/search/tree_half.cpp:2:
In file included from src/search/node.hpp:4:
src/search/../chess/move.hpp:94:67: warning: defaulted comparison operators are a C++20 extension [-Wc++20-extensions]
    [[nodiscard]] constexpr bool operator==(Move const &) const = default;
                                                                  ^
In file included from src/search/tree_half.cpp:2:
src/search/node.hpp:79:81: warning: defaulted comparison operators are a C++20 extension [-Wc++20-extensions]
    [[nodiscard]] constexpr bool operator==(const TerminalState &other) const = default;
                                                                                ^
src/search/node.hpp:17:15: warning: constexpr constructor that does not initialize all members is a C++20 extension [-Wc++20-extensions]
    constexpr TerminalState() {}
              ^
src/search/node.hpp:90:9: note: member not initialized by constructor
    u16 value_;
        ^
In file included from src/chess/board_state.cpp:1:
In file included from src/chess/board_state.hpp:8:
src/chess/move.hpp:94:67: warning: defaulted comparison operators are a C++20 extension [-Wc++20-extensions]
    [[nodiscard]] constexpr bool operator==(Move const &) const = default;
                                                                  ^
In file included from src/chess/move_gen.cpp:1:
In file included from src/chess/move_gen.hpp:4:
src/chess/../util/static_vector.hpp:33:23: error: no member named 'construct_at' in namespace 'std'
        T *res = std::construct_at(data() + size_, value);
                 ~~~~~^
src/chess/../util/static_vector.hpp:45:23: error: no member named 'construct_at' in namespace 'std'
        T *res = std::construct_at(data() + size_, std::forward<Args>(args)...);
                 ~~~~~^
In file included from src/chess/move_gen.cpp:1:
In file included from src/chess/move_gen.hpp:5:
src/chess/bitboard.hpp:151:76: warning: defaulted comparison operators are a C++20 extension [-Wc++20-extensions]
    [[nodiscard]] constexpr bool operator==(Bitboard const &other) const = default;
                                                                           ^
src/chess/bitboard.hpp:186:39: error: no template named 'remove_cvref_t' in namespace 'std'; did you mean '__remove_cvref_t'?
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                                 ~~~~~^~~~~~~~~~~~~~
                                      __remove_cvref_t
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/type_traits:2248:5: note: '__remove_cvref_t' declared here
    using __remove_cvref_t
    ^
In file included from src/chess/move_gen.cpp:1:
In file included from src/chess/move_gen.hpp:5:
src/chess/bitboard.hpp:186:92: error: expected ')'
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                                                                                           ^
src/chess/bitboard.hpp:186:18: note: to match this '('
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                 ^
src/chess/bitboard.hpp:186:24: error: parameter declarator cannot be qualified
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                  ~~~~~^
src/chess/bitboard.hpp:186:24: error: parameter name cannot have template arguments
src/chess/bitboard.hpp:186:24: error: C++ requires a type specifier for all declarations
src/chess/bitboard.hpp:187:102: error: expected ')'
                  (std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, int> && rank_diff == 0)) &&
                                                                                                     ^
src/chess/bitboard.hpp:186:17: note: to match this '('
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                ^
src/chess/bitboard.hpp:186:9: error: C++ requires a type specifier for all declarations
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
        ^
src/chess/bitboard.hpp:190:7: error: 'nodiscard' attribute cannot be applied to types
    [[nodiscard]] constexpr Bitboard shift() const {
      ^
src/chess/bitboard.hpp:190:18: error: expected ';' at end of declaration list
    [[nodiscard]] constexpr Bitboard shift() const {
                 ^
                 ;
src/chess/bitboard.hpp:247:80: warning: defaulted comparison operators are a C++20 extension [-Wc++20-extensions]
        [[nodiscard]] constexpr bool operator==(Iterator const &other) const = default;
                                                                               ^
src/chess/bitboard.hpp:26:21: error: no member named 'popcount' in namespace 'std'; did you mean '__popcount'?
        return std::popcount(raw_);
               ~~~~~^~~~~~~~
                    __popcount
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:289:5: note: '__popcount' declared here
    __popcount(_Tp __x) noexcept
    ^
In file included from src/chess/move_gen.cpp:1:
In file included from src/chess/move_gen.hpp:5:
src/chess/bitboard.hpp:30:21: error: no member named 'countr_zero' in namespace 'std'; did you mean '__countr_zero'?
        return std::countr_zero(raw_);
               ~~~~~^~~~~~~~~~~
                    __countr_zero
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:248:5: note: '__countr_zero' declared here
    __countr_zero(_Tp __x) noexcept
    ^
In file included from src/chess/move_gen.cpp:1:
In file included from src/chess/move_gen.hpp:5:
src/chess/bitboard.hpp:34:33: error: no member named 'countl_zero' in namespace 'std'; did you mean '__countl_zero'?
        return raw_ ? 63 - std::countl_zero(raw_) : 64;
                           ~~~~~^~~~~~~~~~~
                                __countl_zero
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:195:5: note: '__countl_zero' declared here
    __countl_zero(_Tp __x) noexcept
    ^
In file included from src/chess/move_gen.cpp:1:
In file included from src/chess/move_gen.hpp:5:
src/chess/bitboard.hpp:38:21: error: no member named 'rotl' in namespace 'std'
        return std::rotl(raw_, shift);
               ~~~~~^
src/chess/bitboard.hpp:42:21: error: no member named 'rotr' in namespace 'std'
        return std::rotr(raw_, shift);
               ~~~~~^
src/chess/bitboard.hpp:58:28: error: invalid operands to binary expression ('Bitboard' and 'int')
        return (bb & raw_) != 0;
               ~~~~~~~~~~~ ^  ~
src/chess/bitboard.hpp:231:16: error: use of undeclared identifier 'ray_precomp'
        return ray_precomp<rank_diff, file_diff>[sq];
               ^
src/chess/bitboard.hpp:230:45: error: no return statement in constexpr function
    [[nodiscard]] static constexpr Bitboard get_ray_precomputed(Square sq) {
                                            ^
fatal error: In file included from too many errors emitted, stopping now [-ferror-limit=]
src/chess/move.cpp:2:
In file included from src/chess/../uci/uci.hpp:4:
In file included from src/chess/../uci/../chess/board.hpp:3:
src/chess/../util/static_vector.hpp:33:23: error: no member named 'construct_at' in namespace 'std'
        T *res = std::construct_at(data() + size_, value);
                 ~~~~~^
src/chess/../util/static_vector.hpp:45:23: error: no member named 'construct_at' in namespace 'std'
        T *res = std::construct_at(data() + size_, std::forward<Args>(args)...);
                 ~~~~~^
In file included from src/chess/move.cpp:2:
In file included from src/chess/../uci/uci.hpp:4:
In file included from src/chess/../uci/../chess/board.hpp:4:
In file included from src/chess/board_state.hpp:6:
src/chess/bitboard.hpp:151:76: warning: defaulted comparison operators are a C++20 extension [-Wc++20-extensions]
    [[nodiscard]] constexpr bool operator==(Bitboard const &other) const = default;
                                                                           ^
src/chess/bitboard.hpp:186:39: error: no template named 'remove_cvref_t' in namespace 'std'; did you mean '__remove_cvref_t'?
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                                 ~~~~~^~~~~~~~~~~~~~
                                      __remove_cvref_t
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/type_traits:2248:5: note: '__remove_cvref_t' declared here
    using __remove_cvref_t
    ^
In file included from src/chess/move.cpp:2:
In file included from src/chess/../uci/uci.hpp:4:
In file included from src/chess/../uci/../chess/board.hpp:4:
In file included from src/chess/board_state.hpp:6:
src/chess/bitboard.hpp:186:92: error: expected ')'
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                                                                                           ^
src/chess/bitboard.hpp:186:18: note: to match this '('
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                 ^
src/chess/bitboard.hpp:186:24: error: parameter declarator cannot be qualified
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                  ~~~~~^
src/chess/bitboard.hpp:186:24: error: parameter name cannot have template arguments
src/chess/bitboard.hpp:186:24: error: C++ requires a type specifier for all declarations
src/chess/bitboard.hpp:187:102: error: expected ')'
                  (std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, int> && rank_diff == 0)) &&
                                                                                                     ^
src/chess/bitboard.hpp:186:17: note: to match this '('
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                ^
src/chess/bitboard.hpp:186:9: error: C++ requires a type specifier for all declarations
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
        ^
src/chess/bitboard.hpp:190:7: error: 'nodiscard' attribute cannot be applied to types
    [[nodiscard]] constexpr Bitboard shift() const {
      ^
src/chess/bitboard.hpp:190:18: error: expected ';' at end of declaration list
    [[nodiscard]] constexpr Bitboard shift() const {
                 ^
                 ;
src/chess/bitboard.hpp:247:80: warning: defaulted comparison operators are a C++20 extension [-Wc++20-extensions]
        [[nodiscard]] constexpr bool operator==(Iterator const &other) const = default;
                                                                               ^
In file included from src/main.cpp:1:
In file included from src/uci/uci.hpp:4:
In file included from src/uci/../chess/board.hpp:3:
src/uci/../chess/../util/static_vector.hpp:33:23: error: no member named 'construct_at' in namespace 'std'
        T *res = std::construct_at(data() + size_, value);
                 ~~~~~^
src/uci/../chess/../util/static_vector.hppsrc/chess/bitboard.hppIn file included from :26:21: error: no member named 'popcount' in namespace 'std'; did you mean '__popcount'?
        return std::popcount(raw_);
               ~~~~~^~~~~~~~
                    __popcount
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:289:5: note: '__popcount' declared here
    __popcount(_Tp __x) noexcept
    ^
In file included from src/chess/move.cpp:2:
In file included from src/chess/../uci/uci.hpp:4:
In file included from src/chess/../uci/../chess/board.hpp:4:
In file included from src/chess/board_state.hpp:6:
src/chess/bitboard.hpp:30:21: error: no member named 'countr_zero' in namespace 'std'; did you mean '__countr_zero'?
        return std::countr_zero(raw_);
               ~~~~~^~~~~~~~~~~
                    __countr_zero
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:248:5: note: '__countr_zero' declared here
    __countr_zero(_Tp __x) noexcept
    ^
In file included from src/chess/move.cpp:2:
In file included from src/chess/../uci/uci.hpp:4:
In file included from src/chess/../uci/../chess/board.hpp:4:
In file included from src/chess/board_state.hpp:6:
src/chess/bitboard.hpp:34:33: error: no member named 'countl_zero' in namespace 'std'; did you mean '__countl_zero'?
        return raw_ ? 63 - std::countl_zero(raw_) : 64;
                           ~~~~~^~~~~~~~~~~
                                __countl_zero
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:195:5: note: '__countl_zero' declared here
    __countl_zero(_Tp __x) noexcept
    ^
:45:23: error: no member named 'construct_at' in namespace 'std'
        T *res = std::construct_at(data() + size_, std::forward<Args>(args)...);
                 ~~~~~^
In file included from In file included from src/main.cpp:1:
In file included from src/uci/uci.hpp:4:
In file included from src/uci/../chess/board.hpp:4:
In file included from src/uci/../chess/board_state.hpp:6:
src/uci/../chess/bitboard.hpp:151:76: warning: defaulted comparison operators are a C++20 extension [-Wc++20-extensions]
    [[nodiscard]] constexpr bool operator==(Bitboard const &other) const = default;
                                                                           ^
src/uci/../chess/bitboard.hpp:186:39: error: no template named 'remove_cvref_t' in namespace 'std'; did you mean '__remove_cvref_t'?
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                                 ~~~~~^~~~~~~~~~~~~~
                                      __remove_cvref_t
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/type_traits:2248:5: note: '__remove_cvref_t' declared here
    using __remove_cvref_t
    ^
In file included from src/data_gen/format/monty_format.cpp:1:
In file included from src/data_gen/format/monty_format.hpp:4:
In file included from src/data_gen/format/../../chess/board.hpp:3:
src/data_gen/format/../../chess/../util/static_vector.hpp:33:23: error: no member named 'construct_at' in namespace 'std'
        T *res = std::construct_at(data() + size_, value);
                 ~~~~~^
In file included from src/main.cpp:1:
In file included from src/uci/uci.hpp:4:
In file included from src/uci/../chess/board.hpp:4:
In file included from src/uci/../chess/board_state.hpp:6:
src/uci/../chess/bitboard.hpp:186:92: error: expected ')'
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                                                                                           ^
src/uci/../chess/bitboard.hpp:186:18: note: to match this '('
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                 ^
src/uci/../chess/bitboard.hpp:186:24: error: parameter declarator cannot be qualified
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                  ~~~~~^
src/uci/../chess/bitboard.hpp:186:24: error: parameter name cannot have template arguments
src/uci/../chess/bitboard.hpp:186:24: error: C++ requires a type specifier for all declarations
src/uci/../chess/bitboard.hpp:187:102: error: expected ')'
                  (std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, int> && rank_diff == 0)) &&
                                                                                                     ^
src/uci/../chess/bitboard.hpp:186:17: note: to match this '('
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                ^
src/uci/../chess/bitboard.hpp:186:9: error: C++ requires a type specifier for all declarations
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
        ^
src/uci/../chess/bitboard.hpp:190:7: error: 'nodiscard' attribute cannot be applied to types
    [[nodiscard]] constexpr Bitboard shift() const {
      ^
src/uci/../chess/bitboard.hpp:190:18: error: expected ';' at end of declaration list
    [[nodiscard]] constexpr Bitboard shift() const {
                 ^
                 ;
src/uci/../chess/bitboard.hpp:247:80: warning: defaulted comparison operators are a C++20 extension [-Wc++20-extensions]
        [[nodiscard]] constexpr bool operator==(Iterator const &other) const = default;
                                                                               ^
src/data_gen/format/../../chess/../util/static_vector.hpp:45:23: error: no member named 'construct_at' in namespace 'std'
        T *res = std::construct_at(data() + size_, std::forward<Args>(args)...);
                 ~~~~~^
src/uci/../chess/bitboard.hppIn file included from src/data_gen/format/monty_format.cpp:1:
In file included from src/data_gen/format/monty_format.hpp:4:
In file included from src/data_gen/format/../../chess/board.hpp:4:
In file included from src/data_gen/format/../../chess/board_state.hpp:6:
src/data_gen/format/../../chess/bitboard.hpp:151:76: warning: defaulted comparison operators are a C++20 extension [-Wc++20-extensions]
    [[nodiscard]] constexpr bool operator==(Bitboard const &other) const = default;
                                                                           ^
In file included from src/chess/move.cpp:2:
In file included from src/chess/../uci/uci.hpp:4:
In file included from src/chess/../uci/../chess/board.hpp:4:
In file included from src/chess/board_state.hpp:6:
src/chess/bitboard.hpp:38:21: error: no member named 'rotl' in namespace 'std'
        return std::rotl(raw_, shift);
               ~~~~~^
src/tests/perft.cppsrc/search/node.cpp:1:
In file included from src/tests/perft.hpp:4:
In file included from src/tests/../chess/board.hpp:3:
src/tests/../chess/../util/static_vector.hpp:33:23: error: no member named 'construct_at' in namespace 'std'
:1:
In file included from src/search/node.hpp:        T *res = std::construct_at(data() + size_, value);
                 ~~~~~^
4:
src/search/../chess/move.hpp:94:67: warning: defaulted comparison operators are a C++20 extension [-Wc++20-extensions]
    [[nodiscard]] constexpr bool operator==(Move const &) const = default;
                                                                  ^
src/data_gen/format/../../chess/bitboard.hppsrc/chess/bitboard.hpp:42:21: error: no member named 'rotr' in namespace 'std'
        return std::rotr(raw_, shift);
               ~~~~~^
src/chess/bitboard.hpp:58:28: error: invalid operands to binary expression ('Bitboard' and 'int')
        return (bb & raw_) != 0;
               ~~~~~~~~~~~ ^  ~
src/tests/../chess/../util/static_vector.hpp:45:23: error: no member named 'construct_at' in namespace 'std'
        T *res = std::construct_at(data() + size_, std::forward<Args>(args)...);
                 ~~~~~^
:186:39: error: no template named 'remove_cvref_t' in namespace 'std'; did you mean '__remove_cvref_t'?
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                                 ~~~~~^~~~~~~~~~~~~~
                                      __remove_cvref_t
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/type_traits:2248:5: note: '__remove_cvref_t' declared here
    using __remove_cvref_t
    ^
In file included from src/tests/perft.cpp:1:
In file included from src/tests/perft.hpp:4:
In file included from src/tests/../chess/board.hpp:4:
In file included from src/tests/../chess/board_state.hpp:6:
src/tests/../chess/bitboard.hpp:151:76: warning: defaulted comparison operators are a C++20 extension [-Wc++20-extensions]
    [[nodiscard]] constexpr bool operator==(Bitboard const &other) const = default;
                                                                           ^
src/chess/bitboard.hppIn file included from :231:16: error: use of undeclared identifier 'ray_precomp'
        return ray_precomp<rank_diff, file_diff>[sq];
               ^
src/chess/bitboard.hpp:230:45: error: no return statement in constexpr function
    [[nodiscard]] static constexpr Bitboard get_ray_precomputed(Square sq) {
                                            ^
src/tests/../chess/bitboard.hppIn file included from src/data_gen/format/monty_format.cpp:1:
In file included from src/data_gen/format/monty_format.hpp:4:
In file included from src/data_gen/format/../../chess/board.hpp:4:
In file included from src/data_gen/format/../../chess/board_state.hpp:6:
src/data_gen/format/../../chess/bitboard.hpp:186:92: error: expected ')'
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                                                                                           ^
src/data_gen/format/../../chess/bitboard.hpp:186:18: note: to match this '('
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                 ^
src/data_gen/format/../../chess/bitboard.hpp:186:24: error: parameter declarator cannot be qualified
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                  ~~~~~^
src/data_gen/format/../../chess/bitboard.hpp:186:24: error: parameter name cannot have template arguments
src/data_gen/format/../../chess/bitboard.hpp:186:24: error: C++ requires a type specifier for all declarations
src/data_gen/format/../../chess/bitboard.hpp:187:102: error: expected ')'
                  (std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, int> && rank_diff == 0)) &&
                                                                                                     ^
src/data_gen/format/../../chess/bitboard.hpp:186:17: note: to match this '('
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                ^
src/data_gen/format/../../chess/bitboard.hpp:186:9: error: C++ requires a type specifier for all declarations
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
        ^
src/data_gen/format/../../chess/bitboard.hpp:190:7: error: 'nodiscard' attribute cannot be applied to types
    [[nodiscard]] constexpr Bitboard shift() const {
      ^
src/data_gen/format/../../chess/bitboard.hpp:190:18: error: expected ';' at end of declaration list
    [[nodiscard]] constexpr Bitboard shift() const {
                 ^
                 ;
src/data_gen/format/../../chess/bitboard.hpp:247:80: warning: defaulted comparison operators are a C++20 extension [-Wc++20-extensions]In file included from src/chess/board.cpp
        [[nodiscard]] constexpr bool operator==(Iterator const &other) const = default;
                                                                               ^
In file included from src/tests/bench.cpp:2:
In file included from src/tests/../chess/board.hpp:3:
src/tests/../chess/../util/static_vector.hpp:33:23: error: no member named 'construct_at' in namespace 'std'
        T *res = std::construct_at(data() + size_, value);
                 ~~~~~^
src/eval/value_network.cpp:1:
In file included from src/eval/value_network.hpp:4:
In file included from src/eval/../chess/board_state.hpp:6:
src/eval/../chess/bitboard.hpp:151:76: warning: defaulted comparison operators are a C++20 extension [-Wc++20-extensions]
    [[nodiscard]] constexpr bool operator==(Bitboard const &other) const = default;
                                                                           ^
src/tests/../chess/../util/static_vector.hpp:45:23: error: no member named 'construct_at' in namespace 'std'
        T *res = std::construct_at(data() + size_, std::forward<Args>(args)...);:
1                 ~~~~~^
:
In file included from In file included from src/chess/board.hpp:3:
src/chess/../util/static_vector.hpp:33:23: error: no member named 'construct_at' in namespace 'std'
        T *res = std::construct_at(data() + size_, value);
                 ~~~~~^
src/eval/../chess/bitboard.hpp:186:39: error: no template named 'remove_cvref_t' in namespace 'std'; did you mean '__remove_cvref_t'?
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                                 ~~~~~^~~~~~~~~~~~~~
                                      __remove_cvref_t
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/type_traits:2248:5: note: '__remove_cvref_t' declared here
    using __remove_cvref_t
    ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
src/chess/../util/static_vector.hppIn file included from src/tests/perft.cpp:1:
In file included from src/tests/perft.hpp:4:
In file included from src/tests/../chess/board.hpp:4:
In file included from src/tests/../chess/board_state.hpp:6:
src/tests/../chess/bitboard.hpp:186:92: error: expected ')'
src/tests/bench.cpp:        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                                                                                           ^
src/tests/../chess/bitboard.hpp2:
In file included from src/tests/../chess/board.hpp:4:
In file included from src/tests/../chess/board_state.hpp:6:
src/tests/../chess/bitboard.hpp:151:76: warning: defaulted comparison operators are a C++20 extension [-Wc++20-extensions]
:186:    [[nodiscard]] constexpr bool operator==(Bitboard const &other) const = default;
                                                                           ^
18: note: to match this '('
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                 ^
src/tests/../chess/bitboard.hpp:186:24: error: parameter declarator cannot be qualified
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                  ~~~~~^
src/tests/../chess/bitboard.hpp:186:24: error: parameter name cannot have template arguments
src/tests/../chess/bitboard.hpp:186:24: error: C++ requires a type specifier for all declarations
src/tests/../chess/bitboard.hpp:187:102: error: expected ')'
                  (std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, int> && rank_diff == 0)) &&
                                                                                                     ^
src/tests/../chess/bitboard.hpp:186:17: note: to match this '('
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                ^
src/tests/../chess/bitboard.hpp:186:9: error: C++ requires a type specifier for all declarations
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
        ^
src/tests/../chess/bitboard.hpp:190:7: error: 'nodiscard' attribute cannot be applied to types
    [[nodiscard]] constexpr Bitboard shift() const {
      ^
:26:21src/tests/../chess/bitboard.hpp:190:18: error: expected ';' at end of declaration list
:     [[nodiscard]] constexpr Bitboard shift() const {
                 ^
                 ;
error: no member named 'popcount' in namespace 'std'; did you mean '__popcount'?
        return std::popcount(raw_);
               ~~~~~^~~~~~~~
                    __popcount
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:289:5: src/tests/../chess/bitboard.hppnote: '__popcount' declared here
    __popcount(_Tp __x) noexcept:247:80: warning: defaulted comparison operators are a C++20 extension [-Wc++20-extensions]

    ^
        [[nodiscard]] constexpr bool operator==(Iterator const &other) const = default;
                                                                               ^
src/data_gen/format/../../chess/bitboard.hpp:186:39: error: no template named 'remove_cvref_t' in namespace 'std'; did you mean '__remove_cvref_t'?
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                                 ~~~~~^~~~~~~~~~~~~~
                                      __remove_cvref_t
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/type_traits:2248:5: note: '__remove_cvref_t' declared here
    using __remove_cvref_t
    ^
In file included from src/eval/value_network.cpp:1:
In file included from src/eval/value_network.hpp:4:
In file included from src/eval/../chess/board_state.hpp:6:
src/eval/../chess/bitboard.hpp:186:92: error: expected ')'
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                                                                                           ^
src/eval/../chess/bitboard.hpp:186:18: src/tests/../chess/bitboard.hpp:186note: to match this '('
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                 ^
src/eval/../chess/bitboard.hpp:186:24: error: parameter declarator cannot be qualified
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                  ~~~~~^
src/eval/../chess/bitboard.hpp:186:24: error: parameter name cannot have template arguments
src/eval/../chess/bitboard.hpp:186:24: error: C++ requires a type specifier for all declarations
src/eval/../chess/bitboard.hpp:187:102: error: expected ')'
                  (std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, int> && rank_diff == 0)) &&
                                                                                                     ^
src/eval/../chess/bitboard.hpp:186:17: note: to match this '('
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                ^
src/eval/../chess/bitboard.hpp:186:9: error: C++ requires a type specifier for all declarations
In file included from         requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
        ^
src/eval/../chess/bitboard.hppsrc/main.cpp:1:
In file included from src/uci/uci.hpp:4:
In file included from src/uci/../chess/board.hpp:4:
In file included from src/uci/../chess/board_state.hpp:6:
src/uci/../chess/bitboard.hpp:30:21: error: no member named 'countr_zero' in namespace 'std'; did you mean '__countr_zero'?
:190        return std::countr_zero(raw_);
               ~~~~~^~~~~~~~~~~
                    __countr_zero
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:7: error: 'nodiscard' attribute cannot be applied to types
:    [[nodiscard]] constexpr Bitboard shift() const {248:5: note: '__countr_zero' declared here

    __countr_zero(_Tp __x) noexcept
    ^
      ^
src/eval/../chess/bitboard.hpp:26:21: error: no member named 'popcount' in namespace 'std'; did you mean '__popcount'?
        return std::popcount(raw_);
               ~~~~~^~~~~~~~
                    __popcount
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:289:5: note: '__popcount' declared here
    __popcount(_Tp __x) noexcept
    ^
:190:18: error: expected ';' at end of declaration list
    [[nodiscard]] constexpr Bitboard shift() const {
                 ^
                 ;
src/eval/../chess/bitboard.hpp:247:80: warning: defaulted comparison operators are a C++20 extension [-Wc++20-extensions]
        [[nodiscard]] constexpr bool operator==(Iterator const &other) const = default;
                                                                               ^
src/tests/../chess/bitboard.hppIn file included from src/eval/../chess/bitboard.hppIn file included from src/data_gen/format/monty_format.cpp:1:
In file included from src/data_gen/format/monty_format.hpp:4:
In file included from src/data_gen/format/../../chess/board.hpp:4:
In file included from src/data_gen/format/../../chess/board_state.hpp:6:
src/data_gen/format/../../chess/bitboard.hpp:30:21: error: no member named 'countr_zero' in namespace 'std'; did you mean '__countr_zero'?
        return std::countr_zero(raw_);
               ~~~~~^~~~~~~~~~~
                    __countr_zero
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:248:5: note: '__countr_zero' declared here
    __countr_zero(_Tp __x) noexcept
    ^
:45:23: error: no member named 'construct_at' in namespace 'std'
        T *res = std::construct_at(data() + size_, std::forward<Args>(args)...);
                 ~~~~~^
In file included from :39: error: no template named 'remove_cvref_t' in namespace 'std'; did you mean '__remove_cvref_t'?
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                                 ~~~~~^~~~~~~~~~~~~~
                                      __remove_cvref_t
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/type_traits:2248:5: note: '__remove_cvref_t' declared here
    using __remove_cvref_t
    ^
In file included from :26:21: error: no member named 'popcount' in namespace 'std'; did you mean '__popcount'?
        return std::popcount(raw_);
               ~~~~~^~~~~~~~
                    __popcount
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:289:5: note: '__popcount' declared here
    __popcount(_Tp __x) noexcept
    ^
In file included from src/chess/board.cpp:1:
In file included from src/chess/board.hpp:4:
In file included from src/chess/board_state.hpp:6:
src/chess/bitboard.hpp:151:76: warning: defaulted comparison operators are a C++20 extension [-Wc++20-extensions]
    [[nodiscard]] constexpr bool operator==(Bitboard const &other) const = default;
                                                                           ^
src/main.cpp:1:
In file included from src/uci/uci.hpp:4:
In file included from src/uci/../chess/board.hpp:4:
In file included from src/uci/../chess/board_state.hpp:6:
src/uci/../chess/bitboard.hpp:34:33: error: no member named 'countl_zero' in namespace 'std'; did you mean '__countl_zero'?
        return raw_ ? 63 - std::countl_zero(raw_) : 64;
                           ~~~~~^~~~~~~~~~~
                                __countl_zero
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:195:5: note: '__countl_zero' declared here
    __countl_zero(_Tp __x) noexcept
    ^
In file included from src/data_gen/format/monty_format.cpp:1:
In file included from src/data_gen/format/monty_format.hpp:4:
In file included from src/data_gen/format/../../chess/board.hpp:4:
In file included from src/data_gen/format/../../chess/board_state.hpp:6:
src/data_gen/format/../../chess/bitboard.hpp:34:33: error: no member named 'countl_zero' in namespace 'std'; did you mean '__countl_zero'?
        return raw_ ? 63 - std::countl_zero(raw_) : 64;
                           ~~~~~^~~~~~~~~~~
                                __countl_zero
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:195:5: note: '__countl_zero' declared here
    __countl_zero(_Tp __x) noexcept
    ^
src/chess/bitboard.hppsrc/tests/bench.cpp:2:
In file included from src/tests/../chess/board.hpp:4:
In file included from src/tests/../chess/board_state.hpp:6:
src/tests/../chess/bitboard.hpp:186:92: error: expected ')'
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                                                                                           ^
src/tests/../chess/bitboard.hpp:186:18: note: to match this '('
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                 ^
src/tests/../chess/bitboard.hpp:186:24: error: parameter declarator cannot be qualified
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                  ~~~~~^
src/tests/../chess/bitboard.hpp:186:24: error: parameter name cannot have template arguments
src/tests/../chess/bitboard.hpp:186:24: error: C++ requires a type specifier for all declarations
src/tests/../chess/bitboard.hpp:187:102: error: expected ')'
                  (std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, int> && rank_diff == 0)) &&
                                                                                                     ^
src/tests/../chess/bitboard.hpp:186:17: note: to match this '('
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                ^
src/tests/../chess/bitboard.hpp:186:9: error: C++ requires a type specifier for all declarations
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
        ^
src/tests/../chess/bitboard.hpp:190:7: error: 'nodiscard' attribute cannot be applied to types
    [[nodiscard]] constexpr Bitboard shift() const {
      ^
src/tests/../chess/bitboard.hpp:190:18: error: expected ';' at end of declaration list
    [[nodiscard]] constexpr Bitboard shift() const {
                 ^
                 ;
src/eval/value_network.cpp:1:
In file included from src/eval/value_network.hpp:4:
In file included from src/eval/../chess/board_state.hpp:6:
src/eval/../chess/bitboard.hppsrc/tests/../chess/bitboard.hpp:247:80: warning: defaulted comparison operators are a C++20 extension [-Wc++20-extensions]
:30:        [[nodiscard]] constexpr bool operator==(Iterator const &other) const = default;
                                                                               ^
21: error: no member named 'countr_zero' in namespace 'std'; did you mean '__countr_zero'?
        return std::countr_zero(raw_);
               ~~~~~^~~~~~~~~~~
                    __countr_zero
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:248:5: note: '__countr_zero' declared here
    __countr_zero(_Tp __x) noexcept
    ^
In file included from In file included from src/eval/value_network.cpp:1:
In file included from src/eval/value_network.hpp:4:
In file included from src/eval/../chess/board_state.hpp:6:
src/eval/../chess/bitboard.hpp:34:33: error: no member named 'countl_zero' in namespace 'std'; did you mean '__countl_zero'?
        return raw_ ? 63 - std::countl_zero(raw_) : 64;
                           ~~~~~^~~~~~~~~~~
                                __countl_zero
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:195:5: note: '__countl_zero' declared here
    __countl_zero(_Tp __x) noexcept
    ^
In file included from src/main.cpp:1:
In file included from src/uci/uci.hpp:4:
In file included from src/uci/../chess/board.hpp:4:
In file included from src/uci/../chess/board_state.hpp:6:
src/uci/../chess/bitboard.hpp:38:21: error: no member named 'rotl' in namespace 'std'
        return std::rotl(raw_, shift);
               ~~~~~^
src/tests/../chess/bitboard.hpp:186:39: error: no template named 'remove_cvref_t' in namespace 'std'; did you mean '__remove_cvref_t'?
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                                 ~~~~~^~~~~~~~~~~~~~
                                      __remove_cvref_t
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/type_traits:2248:5: note: '__remove_cvref_t' declared here
    using __remove_cvref_t
    ^
In file included from In file included from src/chess/board.cpp:1:
In file included from src/chess/board.hpp:4:
In file included from src/chess/board_state.hpp:6:
src/chess/bitboard.hpp:186:92: error: expected ')'
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                                                                                           ^
src/chess/bitboard.hpp:186:18: note: to match this '('
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                 ^
src/chess/bitboard.hpp:186:24: error: parameter declarator cannot be qualified
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                  ~~~~~^
src/chess/bitboard.hpp:186:24: error: parameter name cannot have template arguments
src/chess/bitboard.hpp:186:24: error: C++ requires a type specifier for all declarations
src/chess/bitboard.hpp:187:102: error: expected ')'
                  (std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, int> && rank_diff == 0)) &&
                                                                                                     ^
src/chess/bitboard.hpp:186:17: note: to match this '('
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                ^
src/chess/bitboard.hpp:186:9: error: C++ requires a type specifier for all declarations
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
        ^
src/chess/bitboard.hpp:190:7: error: 'nodiscard' attribute cannot be applied to types
    [[nodiscard]] constexpr Bitboard shift() const {
      ^
:26:21: error: no member named 'popcount' in namespace 'std'; did you mean '__popcount'?
        return std::popcount(raw_);
src/chess/bitboard.hpp:190:18: error: expected ';' at end of declaration list
               ~~~~~^~~~~~~~
    [[nodiscard]] constexpr Bitboard shift() const {
                 ^
                 ;
                    __popcount
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:289:5: note: '__popcount' declared here
    __popcount(_Tp __x) noexcept
    ^
src/chess/bitboard.hpp:247:80: warning: defaulted comparison operators are a C++20 extension [-Wc++20-extensions]
In file included from         [[nodiscard]] constexpr bool operator==(Iterator const &other) const = default;
                                                                               ^
src/data_gen/format/monty_format.cpp:1:
In file included from src/data_gen/format/monty_format.hpp:4:
In file included from src/data_gen/format/../../chess/board.hpp:4:
In file included from src/data_gen/format/../../chess/board_state.hpp:6:
src/data_gen/format/../../chess/bitboard.hpp:38:21: error: no member named 'rotl' in namespace 'std'
        return std::rotl(raw_, shift);
               ~~~~~^
src/uci/../chess/bitboard.hppsrc/search/game_tree.cpp:1:
In file included from src/search/game_tree.hpp:4:
In file included from src/search/../chess/board.hpp:3:
src/search/../chess/../util/static_vector.hpp:33:23: error: no member named 'construct_at' in namespace 'std'
        T *res = std::construct_at(data() + size_, value);
                 ~~~~~^
In file included from src/tests/perft.cpp:1:
In file included from src/tests/perft.hpp:4:
In file included from src/tests/../chess/board.hpp:4:
In file included from src/tests/../chess/board_state.hpp:6:
src/tests/../chess/bitboard.hpp:30:21: error: no member named 'countr_zero' in namespace 'std'; did you mean '__countr_zero'?
        return std::countr_zero(raw_);
               ~~~~~^~~~~~~~~~~
                    __countr_zero
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:248:5: note: '__countr_zero' declared here
    __countr_zero(_Tp __x) noexcept
    ^
src/search/../chess/../util/static_vector.hpp:45:23: error: no member named 'construct_at' in namespace 'std'
        T *res = std::construct_at(data() + size_, std::forward<Args>(args)...);
                 ~~~~~^
src/eval/value_network.cpp:1:
In file included from src/eval/value_network.hpp:4:
In file included from src/eval/../chess/board_state.hpp:6:
src/eval/../chess/bitboard.hpp:38:21: error: no member named 'rotl' in namespace 'std'
        return std::rotl(raw_, shift);
               ~~~~~^
In file included from src/search/game_tree.cpp:1:
In file included from src/search/game_tree.hpp:4:
In file included from src/search/../chess/board.hpp:4:
In file included from src/search/../chess/board_state.hpp:6:
src/search/../chess/bitboard.hpp:151:76: warning: defaulted comparison operators are a C++20 extension [-Wc++20-extensions]
    [[nodiscard]] constexpr bool operator==(Bitboard const &other) const = default;
                                                                           ^
src/chess/bitboard.hpp:26:21: error: no member named 'popcount' in namespace 'std'; did you mean '__popcount'?
        return std::popcount(raw_);
               ~~~~~^~~~~~~~
                    __popcount
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:289:5: note: '__popcount' declared here
    __popcount(_Tp __x) noexcept
    ^
In file included from src/tests/perft.cpp:1:
In file included from src/tests/perft.hpp:4:
In file included from src/tests/../chess/board.hpp:4:
In file included from src/tests/../chess/board_state.hpp:6:
src/tests/../chess/bitboard.hpp:34:33: error: no member named 'countl_zero' in namespace 'std'; did you mean '__countl_zero'?
        return raw_ ? 63 - std::countl_zero(raw_) : 64;
                           ~~~~~^~~~~~~~~~~
                                __countl_zero
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:195:5: note: '__countl_zero' declared here
    __countl_zero(_Tp __x) noexcept
    ^
src/search/../chess/bitboard.hpp:42:21: error: no member named 'rotr' in namespace 'std'
        return std::rotr(raw_, shift);
               ~~~~~^
src/uci/../chess/bitboard.hppsrc/data_gen/format/../../chess/bitboard.hpp:42:21: error: no member named 'rotr' in namespace 'std'
        return std::rotr(raw_, shift);
               ~~~~~^
In file included from src/data_gen/format/../../chess/bitboard.hpp:58:28: error: invalid operands to binary expression ('Bitboard' and 'int')
        return (bb & raw_) != 0;
               ~~~~~~~~~~~ ^  ~
In file included from src/data_gen/format/../../chess/bitboard.hppsrc/eval/../chess/bitboard.hpp:42:21: error: no member named 'rotr' in namespace 'std'
        return std::rotr(raw_, shift);
               ~~~~~^
src/eval/../chess/bitboard.hpp:58:28: error: invalid operands to binary expression ('Bitboard' and 'int')
        return (bb & raw_) != 0;
               ~~~~~~~~~~~ ^  ~
src/eval/../chess/bitboard.hpp:231:16: error: use of undeclared identifier 'ray_precomp'
        return ray_precomp<rank_diff, file_diff>[sq];
               ^
src/data_gen/format/../../chess/bitboard.hpp:230:45: error: no return statement in constexpr function
    [[nodiscard]] static constexpr Bitboard get_ray_precomputed(Square sq) {
                                            ^
In file included from :58:28: error: invalid operands to binary expression ('Bitboard' and 'int')
        return (bb & raw_) != 0;
               ~~~~~~~~~~~ ^  ~
fatal error: :231:16: error: use of undeclared identifier 'ray_precomp'
        return ray_precomp<rank_diff, file_diff>[sq];
               ^
src/eval/../chess/bitboard.hpp:230:45: error: no return statement in constexpr function
    [[nodiscard]] static constexpr Bitboard get_ray_precomputed(Square sq) {
                                            ^
src/tests/bench.cpp:2:
In file included from src/tests/../chess/board.hpp:4:
In file included from src/tests/../chess/board_state.hpp:6:
src/tests/../chess/bitboard.hpp:30:21: error: no member named 'countr_zero' in namespace 'std'; did you mean '__countr_zero'?
        return std::countr_zero(raw_);
               ~~~~~^~~~~~~~~~~
                    __countr_zero
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:248:5: note: '__countr_zero' declared here
    __countr_zero(_Tp __x) noexcept
    ^
src/eval/../chess/bitboard.hpptoo many errors emitted, stopping now [-ferror-limit=]
src/uci/../chess/bitboard.hpp:186:39: error: no template named 'remove_cvref_t' in namespace 'std'; did you mean '__remove_cvref_t'?
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                                 ~~~~~^~~~~~~~~~~~~~
                                      __remove_cvref_t
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/type_traits:2248:5: note: '__remove_cvref_t' declared here
    using __remove_cvref_t
    ^
In file included from :26:21: error: no member named 'popcount' in namespace 'std'; did you mean '__popcount'?
        return std::popcount(raw_);
               ~~~~~^~~~~~~~
                    __popcount
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:289:5: note: '__popcount' declared here
    __popcount(_Tp __x) noexcept
    ^
:239:48: error: no member named 'countr_zero' in namespace 'std'; did you mean '__countr_zero'?
            return Square{static_cast<u8>(std::countr_zero(state_))};
                                          ~~~~~^~~~~~~~~~~
                                               __countr_zero
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:248:5:In file included from  note: '__countr_zero' declared here
    __countr_zero(_Tp __x) noexcept
    ^
:231:16: error: use of undeclared identifier 'ray_precomp'
        return ray_precomp<rank_diff, file_diff>[sq];
               ^
src/uci/../chess/bitboard.hpp:230:45: error: no return statement in constexpr function
    [[nodiscard]] static constexpr Bitboard get_ray_precomputed(Square sq) {
                                            ^
In file included from src/tests/bench.cpp:2:
In file included from src/tests/../chess/board.hpp:4:
In file included from src/tests/../chess/board_state.hpp:6:
src/tests/../chess/bitboard.hpp:34:33: error: no member named 'countl_zero' in namespace 'std'; did you mean '__countl_zero'?
        return raw_ ? 63 - std::countl_zero(raw_) : 64;
                           ~~~~~^~~~~~~~~~~fatal error: 
                                __countl_zero
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:195:5: note: '__countl_zero' declared here
    __countl_zero(_Tp __x) noexceptsrc/search/game_tree.cpp:1:
In file included from src/search/game_tree.hpp:4:
In file included from src/search/../chess/board.hpp:4:
In file included from src/search/../chess/board_state.hpp:6:
src/search/../chess/bitboard.hpp:186:92: error: expected ')'

    ^
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                                                                                           ^
src/search/../chess/bitboard.hpp:186:18: note: to match this '('
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                 ^
src/search/../chess/bitboard.hpp:186:24: error: parameter declarator cannot be qualified
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                  ~~~~~^
src/search/../chess/bitboard.hpp:186:24: error: parameter name cannot have template arguments
src/search/../chess/bitboard.hpp:186:24: error: C++ requires a type specifier for all declarations
src/search/../chess/bitboard.hpp:187:102: error: expected ')'
                  (std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, int> && rank_diff == 0)) &&
                                                                                                     ^
src/search/../chess/bitboard.hpp:186:17: note: to match this '('
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                ^
In file included from src/search/../chess/bitboard.hpp:186:9: error: C++ requires a type specifier for all declarations
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
        ^
src/search/../chess/bitboard.hpp:190:7: error: 'nodiscard' attribute cannot be applied to types
    [[nodiscard]] constexpr Bitboard shift() const {
      ^
src/search/../chess/bitboard.hpp:190:18: error: expected ';' at end of declaration list
    [[nodiscard]] constexpr Bitboard shift() const {
                 ^
                 ;
src/search/../chess/bitboard.hpp:247:80: warning: defaulted comparison operators are a C++20 extension [-Wc++20-extensions]
        [[nodiscard]] constexpr bool operator==(Iterator const &other) const = default;
                                                                               ^
In file included from src/chess/board.cpp:1:
In file included from src/chess/board.hpp:4:
In file included from src/chess/board_state.hpp:6:
src/chess/bitboard.hpp:30:21: error: no member named 'countr_zero' in namespace 'std'; did you mean '__countr_zero'?
        return std::countr_zero(raw_);
               ~~~~~^~~~~~~~~~~src/tests/perft.cpp:1:
In file included from 
                    __countr_zero
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:248:5: note: '__countr_zero' declared here
src/tests/perft.hpp    __countr_zero(_Tp __x) noexcept
    ^
:4:
In file included from src/tests/../chess/board.hpp:4:
In file included from src/tests/../chess/board_state.hpp:6:
src/tests/../chess/bitboard.hpp:38:21: error: no member named 'rotl' in namespace 'std'
        return std::rotl(raw_, shift);
               ~~~~~^
src/search/../chess/bitboard.hpptoo many errors emitted, stopping now [-ferror-limit=]
In file included from src/chess/board.cpp:1:
In file included from src/chess/board.hpp:4:
In file included from src/chess/board_state.hpp:6:
src/chess/bitboard.hpp:34:33: error: no member named 'countl_zero' in namespace 'std'; did you mean '__countl_zero'?
        return raw_ ? 63 - std::countl_zero(raw_) : 64;
                           ~~~~~^~~~~~~~~~~
                                __countl_zero
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:195:5: note: '__countl_zero' declared here
    __countl_zero(_Tp __x) noexcept
    ^
In file included from src/tests/../chess/bitboard.hpp:42:21: error: no member named 'rotr' in namespace 'std'
        return std::rotr(raw_, shift);
               ~~~~~^
src/tests/../chess/bitboard.hpp:58:28: error: invalid operands to binary expression ('Bitboard' and 'int')
        return (bb & raw_) != 0;In file included from src/tests/bench.cpp:2:
In file included from src/tests/../chess/board.hpp:4:
In file included from src/tests/../chess/board_state.hpp:6:
src/tests/../chess/bitboard.hpp:38:21: error: no member named 'rotl' in namespace 'std'
        return std::rotl(raw_, shift);
               ~~~~~^
src/search/node.cpp:1:
src/search/node.hpp:79:81: warning: defaulted comparison operators are a C++20 extension [-Wc++20-extensions]
    [[nodiscard]] constexpr bool operator==(const TerminalState &other) const = default;
                                                                                ^
src/search/node.hpp:17:15: warning: constexpr constructor that does not initialize all members is a C++20 extension [-Wc++20-extensions]
    constexpr TerminalState() {}
              ^
src/search/node.hpp:90:9: note: member not initialized by constructor
    u16 value_;
        ^
:26:21: error: no member named 'popcount' in namespace 'std'; did you mean '__popcount'?
        return std::popcount(raw_);
               ~~~~~^~~~~~~~
                    __popcount
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:289:5: note: '__popcount' declared here
    __popcount(_Tp __x) noexcept
    ^
src/tests/../chess/bitboard.hppsrc/chess/board.cpp:1:
In file included from src/chess/board.hpp:4:
In file included from src/chess/board_state.hpp:6:
src/chess/bitboard.hpp:38:21: error: no member named 'rotl' in namespace 'std'
        return std::rotl(raw_, shift);
               ~~~~~^
In file included from 
               ~~~~~~~~~~~ ^  ~
In file included from src/eval/policy_network.cpp:1:
In file included from src/eval/policy_network.hpp:4:
In file included from src/eval/../chess/board_state.hpp:6:
src/eval/../chess/bitboard.hpp:151:76: warning: defaulted comparison operators are a C++20 extension [-Wc++20-extensions]
    [[nodiscard]] constexpr bool operator==(Bitboard const &other) const = default;
                                                                           ^
src/chess/bitboard.hpp:42:21: error: no member named 'rotr' in namespace 'std'
        return std::rotr(raw_, shift);
               ~~~~~^
src/tests/../chess/bitboard.hpp:58:28src/tests/../chess/bitboard.hpp: error: invalid operands to binary expression ('Bitboard' and 'int')
        return (bb & raw_) != 0;:231:16: error: use of undeclared identifier 'ray_precomp'

               ~~~~~~~~~~~ ^  ~        return ray_precomp<rank_diff, file_diff>[sq];
               ^

src/tests/../chess/bitboard.hpp:230:45: error: no return statement in constexpr function
    [[nodiscard]] static constexpr Bitboard get_ray_precomputed(Square sq) {
                                            ^
src/eval/../chess/bitboard.hppsrc/search/game_tree.cpp:1:
In file included from src/search/game_tree.hpp:4:
In file included from src/search/../chess/board.hpp:4:
In file included from src/search/../chess/board_state.hpp:6:
src/search/../chess/bitboard.hpp:30:21: error: no member named 'countr_zero' in namespace 'std'; did you mean '__countr_zero'?
        return std::countr_zero(raw_);
               ~~~~~^~~~~~~~~~~
                    __countr_zero
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:248:5: note: '__countr_zero' declared here
    __countr_zero(_Tp __x) noexcept
    ^
src/tests/../chess/bitboard.hpp:In file included from src/search/game_tree.cpp:1:
In file included from src/search/game_tree.hpp:4:
In file included from src/search/../chess/board.hpp:4:
In file included from src/search/../chess/board_state.hpp:6:
src/search/../chess/bitboard.hpp:34:33: error: no member named 'countl_zero' in namespace 'std'; did you mean '__countl_zero'?
42:        return raw_ ? 63 - std::countl_zero(raw_) : 64;
                           ~~~~~^~~~~~~~~~~
                                __countl_zero
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit21: error: no member named 'rotr' in namespace 'std'
:        return std::rotr(raw_, shift);
               ~~~~~^
186:39: error: no template named 'remove_cvref_t' in namespace 'std'; did you mean '__remove_cvref_t'?
fatal error: too many errors emitted, stopping now [-ferror-limit=]
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                                 ~~~~~^~~~~~~~~~~~~~
                                      __remove_cvref_t
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/type_traits:2248:5: note: '__remove_cvref_t' declared here
    using __remove_cvref_t
    ^
src/chess/bitboard.hpp:231:16:: 58error: :use of undeclared identifier 'ray_precomp'28
:        return ray_precomp<rank_diff, file_diff>[sq]; error: invalid operands to binary expression ('Bitboard' and 'int')
        return (bb & raw_) != 0;
               ^
src/tests/../chess/bitboard.hpp
               ~~~~~~~~~~~ ^  ~
In file included from :195:5: note: '__countl_zero' declared here
    __countl_zero(_Tp __x) noexcept
    ^
src/chess/bitboard.hpp:230:45: error: no return statement in constexpr function
    [[nodiscard]] static constexpr Bitboard get_ray_precomputed(Square sq) {
                                            ^
In file included from src/eval/policy_network.cpp:1:
In file included from src/eval/policy_network.hpp:4:
In file included from src/eval/../chess/board_state.hpp:6:
src/eval/../chess/bitboard.hpp:186:92: error: expected ')'
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                                                                                           ^
src/eval/../chess/bitboard.hpp:186:18: note: to match this '('
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                 ^
src/eval/../chess/bitboard.hpp:186:24: error: parameter declarator cannot be qualified
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                  ~~~~~^
src/eval/../chess/bitboard.hpp:186:24: error: parameter name cannot have template arguments
src/eval/../chess/bitboard.hpp:186:24: error: C++ requires a type specifier for all declarations
src/eval/../chess/bitboard.hpp:187:102: error: expected ')'
                  (std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, int> && rank_diff == 0)) &&
                                                                                                     ^
src/eval/../chess/bitboard.hpp:186:fatal error: 17src/eval/networks.cpp: note: :to match this '('2:

In file included from src/eval/policy_network.hpp:4:
In file included from src/eval/../chess/board_state.hpp:        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||6
:
                ^
src/eval/../chess/bitboard.hpp:151:76: src/eval/../chess/bitboard.hppwarning: :defaulted comparison operators are a C++20 extension [-Wc++20-extensions]186
:9: error: C++ requires a type specifier for all declarations
:231        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
        ^
:src/eval/../chess/bitboard.hpp:190:7: error: 'nodiscard' attribute cannot be applied to types
    [[nodiscard]] constexpr bool operator==(Bitboard const &other) const = default;16: error:     [[nodiscard]] constexpr Bitboard shift() const {
use of undeclared identifier 'ray_precomp'      ^


        return ray_precomp<rank_diff, file_diff>[sq];
               ^
                                                                           ^
src/chess/bitboard.hpp:230:45: error: no return statement in constexpr function
    [[nodiscard]] static constexpr Bitboard get_ray_precomputed(Square sq) {
                                            ^
src/eval/../chess/bitboard.hpp:190:18: error: expected ';' at end of declaration list
    [[nodiscard]] constexpr Bitboard shift() const {
                 ^
                 ;
src/eval/../chess/bitboard.hpp:247:80: warning: defaulted comparison operators are a C++20 extension [-Wc++20-extensions]
        [[nodiscard]] constexpr bool operator==(Iterator const &other) const = default;
                                                                               ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
src/eval/../chess/bitboard.hppsrc/search/game_tree.cpp:1:
In file included from src/search/game_tree.hpp:4:
In file included from src/search/../chess/board.hpp:4:
In file included from src/search/../chess/board_state.hpp:6:
src/search/../chess/bitboard.hpp:38:21: error: no member named 'rotl' in namespace 'std'
        return std::rotl(raw_, shift);
               ~~~~~^
src/eval/../chess/bitboard.hpp:186:39src/search/../chess/bitboard.hpp: error: no template named 'remove_cvref_t' in namespace 'std'; did you mean '__remove_cvref_t'?
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                                 ~~~~~^~~~~~~~~~~~~~
                                      __remove_cvref_t
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/type_traits:2248:5: note: '__remove_cvref_t' declared here
    using __remove_cvref_t
    ^
In file included from In file included from src/eval/networks.cpp:2:
In file included from src/eval/policy_network.hpp:4:
In file included from src/eval/../chess/board_state.hpp:6:
src/eval/../chess/bitboard.hpp:186:92: error: expected ')'
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                                                                                           ^
src/eval/../chess/bitboard.hpp:186:18: note: to match this '('
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                 ^
src/eval/../chess/bitboard.hpp:186:24: error: parameter declarator cannot be qualified
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                  ~~~~~^
src/eval/../chess/bitboard.hpp:186:24: error: parameter name cannot have template arguments
src/eval/../chess/bitboard.hpp:186:24: error: C++ requires a type specifier for all declarations
src/eval/../chess/bitboard.hpp:187:102: error: expected ')'
                  (std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, int> && rank_diff == 0)) &&
                                                                                                     ^
src/eval/../chess/bitboard.hpp:186:17: note: to match this '('
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                ^
src/eval/../chess/bitboard.hpp:186:9: error: C++ requires a type specifier for all declarations
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
        ^
src/eval/../chess/bitboard.hpp:190:7: error: 'nodiscard' attribute cannot be applied to types
    [[nodiscard]] constexpr Bitboard shift() const {
      ^
src/eval/../chess/bitboard.hpp:190:18: error: expected ';' at end of declaration list
    [[nodiscard]] constexpr Bitboard shift() const {
                 ^
                 ;
src/eval/../chess/bitboard.hpp:src/search/searcher.cpptoo many errors emitted, stopping now [-ferror-limit=]:
1:
In file included from src/search/searcher.hpp:4:
In file included from src/search/../chess/board.hpp:3:
src/search/../chess/../util/static_vector.hpp:33:23: error: no member named 'construct_at' in namespace 'std'
26:21: error:         T *res = std::construct_at(data() + size_, value);
                 ~~~~~^
no member named 'popcount' in namespace 'std'; did you mean '__popcount'?
        return std::popcount(raw_);
               ~~~~~^~~~~~~~
                    __popcount
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:289:5: note: '__popcount' declared here
    __popcount(_Tp __x) noexcept
    ^
In file included from :42:21: error: no member named 'rotr' in namespace 'std'
        return std::rotr(raw_, shift);
               ~~~~~^
src/search/../chess/bitboard.hpp:58:28: error: invalid operands to binary expression ('Bitboard' and 'int')
        return (bb & raw_) != 0;
               ~~~~~~~~~~~ ^  ~
src/search/../chess/../util/static_vector.hpp:45:23: error: no member named 'construct_at' in namespace 'std'
        T *res = std::construct_at(data() + size_, std::forward<Args>(args)...);
                 ~~~~~^
:247:80: warning: defaulted comparison operators are a C++20 extension [-Wc++20-extensions]
        [[nodiscard]] constexpr bool operator==(Iterator const &other) const = default;
                                                                               ^
In file included from src/search/searcher.cpp:1In file included from :
In file included from src/search/searcher.hpp:4:
In file included from src/search/../chess/board.hpp:4:
In file included from src/search/../chess/board_state.hpp:6:
src/search/../chess/bitboard.hpp:151:76: warning: defaulted comparison operators are a C++20 extension [-Wc++20-extensions]
src/eval/value_network.cpp:    [[nodiscard]] constexpr bool operator==(Bitboard const &other) const = default;
                                                                           ^
1:
In file included from src/eval/value_network.hpp:4:
In file included from src/eval/../chess/board_state.hpp:8:
src/eval/../chess/move.hpp:94:67: warning: defaulted comparison operators are a C++20 extension [-Wc++20-extensions]
    [[nodiscard]] constexpr bool operator==(Move const &) const = default;
                                                                  ^
src/search/../chess/bitboard.hppsrc/eval/policy_network.cpp:1:
In file included from src/eval/policy_network.hpp:4:
In file included from src/eval/../chess/board_state.hpp:6:
src/eval/../chess/bitboard.hpp:30:21: error: no member named 'countr_zero' in namespace 'std'; did you mean '__countr_zero'?
        return std::countr_zero(raw_);
               ~~~~~^~~~~~~~~~~
                    __countr_zero
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:248:5: note: '__countr_zero' declared here
    __countr_zero(_Tp __x) noexcept
    ^
In file included from :231:16: error: use of undeclared identifier 'ray_precomp'
        return ray_precomp<rank_diff, file_diff>[sq];src/eval/policy_network.cpp:1:
In file included from 
src/eval/policy_network.hpp               ^:
4src/search/../chess/bitboard.hpp:
In file included from src/eval/../chess/board_state.hpp:6:230:45: :
error: src/eval/../chess/bitboard.hppno return statement in constexpr function:
34    [[nodiscard]] static constexpr Bitboard get_ray_precomputed(Square sq) {:33: error: no member named 'countl_zero' in namespace 'std'; did you mean '__countl_zero'?

                                            ^        return raw_ ? 63 - std::countl_zero(raw_) : 64;
src/search/../chess/bitboard.hppsrc/data_gen/game_runner.cpp:1:
In file included from src/data_gen/game_runner.hpp:4:
In file included from src/data_gen/../search/searcher.hpp:4:
In file included from src/data_gen/../search/../chess/board.hpp:3:
src/data_gen/../search/../chess/../util/static_vector.hpp:33:23: error: no member named 'construct_at' in namespace 'std'
        T *res = std::construct_at(data() + size_, value);
                 ~~~~~^
fatal error: 
                           ~~~~~^~~~~~~~~~~
                                __countl_zero
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:195:5: note: '__countl_zero' declared here
    __countl_zero(_Tp __x) noexcept
    ^
src/eval/../chess/bitboard.hppIn file included from too many errors emitted, stopping now [-ferror-limit=]
src/data_gen/../search/../chess/../util/static_vector.hpp:26:21: error: no member named 'popcount' in namespace 'std'; did you mean '__popcount'?
        return std::popcount(raw_);
               ~~~~~^~~~~~~~
                    __popcount
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:289:5: note: '__popcount' declared here
    __popcount(_Tp __x) noexcept
    ^
:186:39: error: no template named 'remove_cvref_t' in namespace 'std'; did you mean '__remove_cvref_t'?
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                                 ~~~~~^~~~~~~~~~~~~~
                                      __remove_cvref_t
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/type_traits:2248:5: note: '__remove_cvref_t' declared here
    using __remove_cvref_t
    ^
In file included from In file included from :45:23: error: src/eval/policy_network.cpp:1:
In file included from src/eval/policy_network.hpp:4:
In file included from src/eval/../chess/board_state.hpp:6:
src/eval/../chess/bitboard.hpp:38:21: error: no member named 'rotl' in namespace 'std'
no member named 'construct_at' in namespace 'std'
        return std::rotl(raw_, shift);
               ~~~~~^
        T *res = std::construct_at(data() + size_, std::forward<Args>(args)...);
                 ~~~~~^
In file included from src/data_gen/game_runner.cpp:1:
In file included from src/data_gen/game_runner.hpp:4:
In file included from src/data_gen/../search/searcher.hpp:4:
In file included from src/data_gen/../search/../chess/board.hpp:4:
In file included from src/data_gen/../search/../chess/board_state.hpp:6:
src/data_gen/../search/../chess/bitboard.hpp:151:76: warning: defaulted comparison operators are a C++20 extension [-Wc++20-extensions]
    [[nodiscard]] constexpr bool operator==(Bitboard const &other) const = default;
                                                                           ^
src/eval/../chess/bitboard.hpp:42:21: error: no member named 'rotr' in namespace 'std'
        return std::rotr(raw_, shift);
               ~~~~~^
src/eval/../chess/bitboard.hpp:58:28: error: invalid operands to binary expression ('Bitboard' and 'int')
        return (bb & raw_) != 0;
               ~~~~~~~~~~~ ^  ~
src/eval/../chess/bitboard.hpp:231:16: error: use of undeclared identifier 'ray_precomp'
        return ray_precomp<rank_diff, file_diff>[sq];src/data_gen/../search/../chess/bitboard.hppsrc/eval/networks.cpp:2:
In file included from src/eval/policy_network.hpp:4:
In file included from src/eval/../chess/board_state.hpp:6:
src/eval/../chess/bitboard.hpp:30:21: error: no member named 'countr_zero' in namespace 'std'; did you mean '__countr_zero'?
        return std::countr_zero(raw_);
               ~~~~~^~~~~~~~~~~
                    __countr_zero
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:248:5: note: '__countr_zero' declared here
    __countr_zero(_Tp __x) noexcept
    ^
src/search/searcher.cpp:1:
In file included from src/search/searcher.hpp:4:
In file included from src/search/../chess/board.hpp:4:
In file included from src/search/../chess/board_state.hpp:6:
src/search/../chess/bitboard.hpp:186:92: error: expected ')'
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                                                                                           ^
src/search/../chess/bitboard.hpp:186:18: note: to match this '('
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                 ^
src/search/../chess/bitboard.hpp:186:24: error: parameter declarator cannot be qualified
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                  ~~~~~^
src/search/../chess/bitboard.hpp:186:24: error: parameter name cannot have template arguments
src/search/../chess/bitboard.hpp:186:24: error: C++ requires a type specifier for all declarations
src/search/../chess/bitboard.hpp:187:102: error: expected ')'
                  (std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, int> && rank_diff == 0)) &&
                                                                                                     ^
src/search/../chess/bitboard.hpp:186:17: note: to match this '('
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                ^
src/search/../chess/bitboard.hpp:186:9: error: C++ requires a type specifier for all declarations
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
        ^
src/search/../chess/bitboard.hpp:190:7: error: 'nodiscard' attribute cannot be applied to types
    [[nodiscard]] constexpr Bitboard shift() const {
      ^
src/search/../chess/bitboard.hpp:190:18: error: expected ';' at end of declaration list
    [[nodiscard]] constexpr Bitboard shift() const {
                 ^
                 ;
src/search/../chess/bitboard.hpp:247:80: warning: defaulted comparison operators are a C++20 extension [-Wc++20-extensions]
        [[nodiscard]] constexpr bool operator==(Iterator const &other) const = default;
                                                                               ^
src/search/../chess/bitboard.hppIn file included from :186:39: error: no template named 'remove_cvref_t' in namespace 'std'; did you mean '__remove_cvref_t'?
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                                 ~~~~~^~~~~~~~~~~~~~
                                      __remove_cvref_t
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/type_traits:2248:5: note: '__remove_cvref_t' declared here
    using __remove_cvref_t
    ^
In file included from src/eval/networks.cpp:2:
In file included from src/eval/policy_network.hpp:4:
In file included from src/eval/../chess/board_state.hpp:6:
src/eval/../chess/bitboard.hpp:34:33: error: no member named 'countl_zero' in namespace 'std'; did you mean '__countl_zero'?
        return raw_ ? 63 - std::countl_zero(raw_) : 64;
                           ~~~~~^~~~~~~~~~~
                                __countl_zero
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:195:5: note: '__countl_zero' declared here
    __countl_zero(_Tp __x) noexcept

    ^
               ^
src/eval/../chess/bitboard.hpp:230:45: error: no return statement in constexpr function
    [[nodiscard]] static constexpr Bitboard get_ray_precomputed(Square sq) {
                                            ^
src/eval/../chess/bitboard.hpp:239:48: error: no member named 'countr_zero' in namespace 'std'; did you mean '__countr_zero'?
            return Square{static_cast<u8>(std::countr_zero(state_))};
                                          ~~~~~^~~~~~~~~~~
                                               __countr_zero
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:248:5: note: '__countr_zero' declared here
    __countr_zero(_Tp __x) noexcept
    ^
In file included from :26:21: error: no member named 'popcount' in namespace 'std'; did you mean '__popcount'?
        return std::popcount(raw_);
               ~~~~~^~~~~~~~
                    __popcount
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:289:5: note: '__popcount' declared here
    __popcount(_Tp __x) noexcept
    ^
In file included from src/search/searcher.cpp:1:
In file included from src/search/searcher.hpp:4:
In file included from src/search/../chess/board.hpp:4:
In file included from src/search/../chess/board_state.hpp:6:
src/search/../chess/bitboard.hpp:30:21: error: no member named 'countr_zero' in namespace 'std'; did you mean '__countr_zero'?
        return std::countr_zero(raw_);
               ~~~~~^~~~~~~~~~~
                    __countr_zero
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:248:5: note: '__countr_zero' declared here
    __countr_zero(_Tp __x) noexcept
    ^
src/data_gen/game_runner.cpp:1:
In file included from src/data_gen/game_runner.hpp:4:
In file included from src/data_gen/../search/searcher.hpp:4:
In file included from src/data_gen/../search/../chess/board.hpp:In file included from 4:
In file included from src/data_gen/../search/../chess/board_state.hpp:6:
src/data_gen/../search/../chess/bitboard.hpp:186:92: error: expected ')'
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                                                                                           ^
src/data_gen/../search/../chess/bitboard.hpp:186:18: note: to match this '('
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                 ^
src/data_gen/../search/../chess/bitboard.hpp:186:24: error: parameter declarator cannot be qualified
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                  ~~~~~^
src/data_gen/../search/../chess/bitboard.hpp:186:24: error: parameter name cannot have template arguments
src/data_gen/../search/../chess/bitboard.hpp:186:24: error: C++ requires a type specifier for all declarations
src/data_gen/../search/../chess/bitboard.hpp:187:102: error: expected ')'
                  (std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, int> && rank_diff == 0)) &&
                                                                                                     ^
src/data_gen/../search/../chess/bitboard.hpp:186:17: note: to match this '('
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                ^
src/data_gen/../search/../chess/bitboard.hpp:186:9: error: C++ requires a type specifier for all declarations
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
        ^
src/data_gen/../search/../chess/bitboard.hpp:190:7: error: 'nodiscard' attribute cannot be applied to types
    [[nodiscard]] constexpr Bitboard shift() const {
      ^
src/data_gen/../search/../chess/bitboard.hpp:190:18: error: expected ';' at end of declaration list
    [[nodiscard]] constexpr Bitboard shift() const {
                 ^
                 ;
src/data_gen/../search/../chess/bitboard.hpp:247:80: warning: defaulted comparison operators are a C++20 extension [-Wc++20-extensions]
        [[nodiscard]] constexpr bool operator==(Iterator const &other) const = default;
                                                                               ^
In file included from src/eval/networks.cpp:2:
In file included from src/eval/policy_network.hpp:4:
In file included from src/eval/../chess/board_state.hpp:6:
src/eval/../chess/bitboard.hpp:38:21: error: no member named 'rotl' in namespace 'std'
        return std::rotl(raw_, shift);
               ~~~~~^
src/data_gen/../search/../chess/bitboard.hppsrc/data_gen/openings.cpp:1:
In file included from src/data_gen/openings.hpp:4:
In file included from src/data_gen/../chess/board.hpp:3:
src/data_gen/../chess/../util/static_vector.hpp:33:23: error: no member named 'construct_at' in namespace 'std'
        T *res = std::construct_at(data() + size_, value);
                 ~~~~~^
src/data_gen/../chess/../util/static_vector.hpp:26:21: error: no member named 'popcount' in namespace 'std'; did you mean '__popcount'?
        return std::popcount(raw_);
               ~~~~~^~~~~~~~
                    __popcount
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:289:5: note: '__popcount' declared here
    __popcount(_Tp __x) noexcept
    ^
src/search/searcher.cpp:1:
In file included from src/search/searcher.hpp:4:
In file included from src/search/../chess/board.hpp:4:
In file included from src/search/../chess/board_state.hpp:6:
src/search/../chess/bitboard.hpp:34:33: error: no member named 'countl_zero' in namespace 'std'; did you mean '__countl_zero'?
        return raw_ ? 63 - std::countl_zero(raw_) : 64;
                           ~~~~~^~~~~~~~~~~
                                __countl_zero
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:195:5: note: '__countl_zero' declared here
    __countl_zero(_Tp __x) noexcept
    ^
In file included from :45:23: error: no member named 'construct_at' in namespace 'std'
        T *res = std::construct_at(data() + size_, std::forward<Args>(args)...);
                 ~~~~~^
In file included from In file included from src/eval/../chess/bitboard.hppsrc/data_gen/game_runner.cpp:1:
In file included from src/data_gen/game_runner.hpp:4:
In file included from src/data_gen/../search/searcher.hpp:4:
In file included from src/data_gen/openings.cppsrc/data_gen/../search/../chess/board.hpp:4::
1In file included from :
src/data_gen/../search/../chess/board_state.hppIn file included from :6src/data_gen/openings.hpp:
:src/data_gen/../search/../chess/bitboard.hpp4::
30In file included from :src/data_gen/../chess/board.hpp21::4 :
error: In file included from no member named 'countr_zero' in namespace 'std'; did you mean '__countr_zero'?src/data_gen/../chess/board_state.hpp
:        return std::countr_zero(raw_);6:
src/data_gen/../chess/bitboard.hpp:151:76: 
warning:                ~~~~~^~~~~~~~~~~defaulted comparison operators are a C++20 extension [-Wc++20-extensions]

3    [[nodiscard]] constexpr bool operator==(Bitboard const &other) const = default;:42:21: error: no member named 'rotr' in namespace 'std'
                    __countr_zero
        return std::rotr(raw_, shift);
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit               ~~~~~^

:                                                                           ^248
:src/eval/../chess/bitboard.hpp:58:28: error: invalid operands to binary expression ('Bitboard' and 'int')
        return (bb & raw_) != 0;
               ~~~~~~~~~~~ ^  ~
3src/eval/../chess/bitboard.hpp:231:16: error: use of undeclared identifier 'ray_precomp'
        return ray_precomp<rank_diff, file_diff>[sq];
               ^
src/eval/../chess/bitboard.hpp:230:45: error: no return statement in constexpr function
    [[nodiscard]] static constexpr Bitboard get_ray_precomputed(Square sq) {
                                            ^
src/search/searcher.cpp:1:
In file included from src/search/searcher.hpp:4:
In file included from src/search/../chess/board.hpp:4:
In file included from src/search/../chess/board_state.hpp:6:
src/search/../chess/bitboard.hpp:38:21: error: no member named 'rotl' in namespace 'std'
        return std::rotl(raw_, shift);
               ~~~~~^
src/data_gen/../chess/bitboard.hpp5: note: '__countr_zero' declared here
    __countr_zero(_Tp __x) noexcept
    ^
src/eval/../chess/bitboard.hppIn file included from src/data_gen/game_runner.cpp:1:
In file included from src/data_gen/game_runner.hpp:4:
In file included from src/data_gen/../search/searcher.hpp:4:
In file included from src/data_gen/../search/../chess/board.hpp:4:
In file included from src/data_gen/../search/../chess/board_state.hpp:6:
src/data_gen/../search/../chess/bitboard.hpp:34:33: error: no member named 'countl_zero' in namespace 'std'; did you mean '__countl_zero'?
        return raw_ ? 63 - std::countl_zero(raw_) : 64;
                           ~~~~~^~~~~~~~~~~
                                __countl_zero
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:195:5: note: '__countl_zero' declared here
    __countl_zero(_Tp __x) noexcept
    ^
 warnings generated.
 warnings generated.
:239:48: error: no member named 'countr_zero' in namespace 'std'; did you mean '__countr_zero'?
            return Square{static_cast<u8>(std::countr_zero(state_))};
                                          ~~~~~^~~~~~~~~~~
                                               __countr_zero
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:248:5: note: '__countr_zero' declared here
    __countr_zero(_Tp __x) noexcept
    ^
In file included from :186:39: error: no template named 'remove_cvref_t' in namespace 'std'; did you mean '__remove_cvref_t'?
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                                 ~~~~~^~~~~~~~~~~~~~
                                      __remove_cvref_t
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/type_traits:2248:5: note: '__remove_cvref_t' declared here
    using __remove_cvref_t
    ^
In file included from src/data_gen/openings.cpp:1:
In file included from src/data_gen/openings.hpp:4:
In file included from src/data_gen/../chess/board.hpp:4:
In file included from src/data_gen/../chess/board_state.hpp:6:
src/data_gen/../chess/bitboard.hpp:186:92: error: expected ')'
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                                                                                           ^
src/data_gen/../chess/bitboard.hpp:186:18: note: to match this '('
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                 ^
src/data_gen/../chess/bitboard.hpp:186:24: error: parameter declarator cannot be qualified
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                  ~~~~~^
src/data_gen/../chess/bitboard.hpp:186:24: error: parameter name cannot have template arguments
src/data_gen/../chess/bitboard.hpp:186:24: error: C++ requires a type specifier for all declarations
src/data_gen/../chess/bitboard.hpp:187:102: error: expected ')'
                  (std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, int> && rank_diff == 0)) &&
                                                                                                     ^
src/data_gen/../chess/bitboard.hpp:186:17: note: to match this '('
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                ^
src/data_gen/../chess/bitboard.hpp:186:9: error: C++ requires a type specifier for all declarations
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
        ^
src/data_gen/../chess/bitboard.hpp:190:7: error: 'nodiscard' attribute cannot be applied to types
    [[nodiscard]] constexpr Bitboard shift() const {
      ^
src/data_gen/../chess/bitboard.hpp:190:18: error: expected ';' at end of declaration list
    [[nodiscard]] constexpr Bitboard shift() const {
                 ^
                 ;
src/data_gen/../chess/bitboard.hpp:247:80: warning: defaulted comparison operators are a C++20 extension [-Wc++20-extensions]
        [[nodiscard]] constexpr bool operator==(Iterator const &other) const = default;
                                                                               ^
src/search/../chess/bitboard.hppsrc/data_gen/../chess/bitboard.hppIn file included from :42:21: error: no member named 'rotr' in namespace 'std'
        return std::rotr(raw_, shift);
               ~~~~~^
src/search/../chess/bitboard.hpp:58:28: error: invalid operands to binary expression ('Bitboard' and 'int')
        return (bb & raw_) != 0;
               ~~~~~~~~~~~ ^  ~
src/search/../chess/bitboard.hpp:231:16: error: use of undeclared identifier 'ray_precomp'
        return ray_precomp<rank_diff, file_diff>[sq];
               ^
src/search/../chess/bitboard.hpp:230:45: error: no return statement in constexpr function
    [[nodiscard]] static constexpr Bitboard get_ray_precomputed(Square sq) {
                                            ^
src/data_gen/game_runner.cpp:1:
In file included from src/data_gen/game_runner.hpp:4:
In file included from src/data_gen/../search/searcher.hpp:4:
In file included from src/data_gen/../search/../chess/board.hpp:4:
In file included from src/data_gen/../search/../chess/board_state.hpp:6:
src/data_gen/../search/../chess/bitboard.hpp:38:21: error: no member named 'rotl' in namespace 'std'
        return std::rotl(raw_, shift);
               ~~~~~^
In file included from src/eval/policy_network.cpp:1:
In file included from src/eval/policy_network.hpp:4:
In file included from src/eval/../chess/board_state.hpp:8:
src/eval/../chess/move.hpp:94:67: warning: defaulted comparison operators are a C++20 extension [-Wc++20-extensions]
    [[nodiscard]] constexpr bool operator==(Move const &) const = default;
                                                                  ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
:26:21: error: no member named 'popcount' in namespace 'std'; did you mean '__popcount'?
        return std::popcount(raw_);
               ~~~~~^~~~~~~~
                    __popcount
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:289:5: note: '__popcount' declared here
    __popcount(_Tp __x) noexcept
    ^
src/data_gen/../search/../chess/bitboard.hpp:42:21: error: no member named 'rotr' in namespace 'std'
        return std::rotr(raw_, shift);
               ~~~~~^
src/data_gen/../search/../chess/bitboard.hpp:58:28: error: invalid operands to binary expression ('Bitboard' and 'int')
        return (bb & raw_) != 0;
               ~~~~~~~~~~~ ^  ~
In file included from src/data_gen/openings.cpp:1:
In file included from src/data_gen/openings.hpp:4:
In file included from src/data_gen/../chess/board.hpp:4:
In file included from src/data_gen/../chess/board_state.hpp:6:
src/data_gen/../chess/bitboard.hpp:30:21: error: no member named 'countr_zero' in namespace 'std'; did you mean '__countr_zero'?
        return std::countr_zero(raw_);
               ~~~~~^~~~~~~~~~~
                    __countr_zero
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:248:5: note: '__countr_zero' declared here
    __countr_zero(_Tp __x) noexcept
    ^
src/uci/uci.cpp:1:
In file included from src/uci/uci.hpp:4:
In file included from src/data_gen/../search/../chess/bitboard.hpp:231:16: error: use of undeclared identifier 'ray_precomp'
src/uci/../chess/board.hpp        return ray_precomp<rank_diff, file_diff>[sq];:3:
src/uci/../chess/../util/static_vector.hpp:33:23: error: no member named 'construct_at' in namespace 'std'
        T *res = std::construct_at(data() + size_, value);
                 ~~~~~^
In file included from src/data_gen/openings.cpp:1:
In file included from src/data_gen/openings.hpp:4:
In file included from src/data_gen/../chess/board.hpp:4:
In file included from src/data_gen/../chess/board_state.hpp:6:
src/data_gen/../chess/bitboard.hpp:34:33: error: no member named 'countl_zero' in namespace 'std'; did you mean '__countl_zero'?
        return raw_ ? 63 - std::countl_zero(raw_) : 64;
                           ~~~~~^~~~~~~~~~~
                                __countl_zero
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:195:5: note: '__countl_zero' declared here
    __countl_zero(_Tp __x) noexcept
    ^
src/uci/../chess/../util/static_vector.hpp
               ^
src/data_gen/../search/../chess/bitboard.hpp:230:45: error: no return statement in constexpr function
    [[nodiscard]] static constexpr Bitboard get_ray_precomputed(Square sq) {
                                            ^
In file included from :45:23: error: no member named 'construct_at' in namespace 'std'
        T *res = std::construct_at(data() + size_, std::forward<Args>(args)...);
                 ~~~~~^
fatal error: In file included from src/uci/uci.cpp:1:
In file included from src/uci/uci.hpp:4:
In file included from src/uci/../chess/board.hpp:4:
In file included from src/uci/../chess/board_state.hpp:6:
src/uci/../chess/bitboard.hpp:151:76: warning: defaulted comparison operators are a C++20 extension [-Wc++20-extensions]
    [[nodiscard]] constexpr bool operator==(Bitboard const &other) const = default;
                                                                           ^
In file included from src/data_gen/openings.cpp:1:
In file included from src/data_gen/openings.hpp:4:
In file included from src/data_gen/../chess/board.hpp:4:
In file included from src/data_gen/../chess/board_state.hpp:6:
src/data_gen/../chess/bitboard.hpp:38:21: error: no member named 'rotl' in namespace 'std'
        return std::rotl(raw_, shift);
               ~~~~~^
src/uci/../chess/bitboard.hpp:186:39: error: no template named 'remove_cvref_t' in namespace 'std'; did you mean '__remove_cvref_t'?
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                                 ~~~~~^~~~~~~~~~~~~~
                                      __remove_cvref_t
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/type_traits:2248:5: note: '__remove_cvref_t' declared here
    using __remove_cvref_t
    ^
In file included from In file included from src/data_gen/../chess/bitboard.hppsrc/search/thread.cpp:1:
In file included from src/search/thread.hpp:4:
In file included from src/search/../chess/board.hpp:3:
src/search/../chess/../util/static_vector.hpp:33:23: error: no member named 'construct_at' in namespace 'std'
        T *res = std::construct_at(data() + size_, value);
                 ~~~~~^
too many errors emitted, stopping now [-ferror-limit=]
src/search/../chess/../util/static_vector.hpp:42:21: error: no member named 'rotr' in namespace 'std'
        return std::rotr(raw_, shift);
               ~~~~~^
src/uci/uci.cpp:1:
In file included from src/uci/uci.hpp:4:
In file included from src/uci/../chess/board.hpp:4:
In file included from src/uci/../chess/board_state.hpp:6:
src/uci/../chess/bitboard.hpp:186:92: src/data_gen/../chess/bitboard.hpp:58:28: error: invalid operands to binary expression ('Bitboard' and 'int')
error:         return (bb & raw_) != 0;expected ')'

        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||               ~~~~~~~~~~~ ^  ~
src/data_gen/../chess/bitboard.hpp:45:23: error: no member named 'construct_at' in namespace 'std'
        T *res = std::construct_at(data() + size_, std::forward<Args>(args)...);
                 ~~~~~^
:231:16: error: use of undeclared identifier 'ray_precomp'
        return ray_precomp<rank_diff, file_diff>[sq];
               ^
src/data_gen/../chess/bitboard.hpp:230:45: error: no return statement in constexpr function
    [[nodiscard]] static constexpr Bitboard get_ray_precomputed(Square sq) {
                                            ^
fatal error: In file included from src/search/thread.cpp:1:
In file included from src/search/thread.hpp:4:
In file included from src/search/../chess/board.hpp:4:
In file included from src/search/../chess/board_state.hpp:6:
src/search/../chess/bitboard.hpp:151:76: warning: defaulted comparison operators are a C++20 extension [-Wc++20-extensions]
    [[nodiscard]] constexpr bool operator==(Bitboard const &other) const = default;
                                                                           ^
src/eval/networks.cpp:2:
In file included from src/eval/policy_network.hpp:4:
In file included from src/eval/../chess/board_state.hpp:8:
src/eval/../chess/move.hpp:94:67: warning: defaulted comparison operators are a C++20 extension [-Wc++20-extensions]
    [[nodiscard]] constexpr bool operator==(Move const &) const = default;
                                                                  ^

                                                                                           ^
src/search/../chess/bitboard.hppsrc/uci/../chess/bitboard.hpp:186:18: note: to match this '('
too many errors emitted, stopping now [-ferror-limit=]
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                 ^
src/uci/../chess/bitboard.hpp:186:24: error: parameter declarator cannot be qualified
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                  ~~~~~^
src/uci/../chess/bitboard.hpp:186:24: error: parameter name cannot have template arguments
src/uci/../chess/bitboard.hpp:186:24: error: C++ requires a type specifier for all declarations
src/uci/../chess/bitboard.hpp:187:102: error: expected ')'
                  (std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, int> && rank_diff == 0)) &&
                                                                                                     ^
src/uci/../chess/bitboard.hpp:186:17: note: to match this '('
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                ^
src/uci/../chess/bitboard.hpp:186:9: error: C++ requires a type specifier for all declarations
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
        ^
src/uci/../chess/bitboard.hpp:190:7: error: 'nodiscard' attribute cannot be applied to types
    [[nodiscard]] constexpr Bitboard shift() const {
      ^
src/uci/../chess/bitboard.hpp:190:18: error: expected ';' at end of declaration list
    [[nodiscard]] constexpr Bitboard shift() const {
                 ^
                 ;
src/uci/../chess/bitboard.hpp:247:80: warning: defaulted comparison operators are a C++20 extension [-Wc++20-extensions]
        [[nodiscard]] constexpr bool operator==(Iterator const &other) const = default;
                                                                               ^
:186:39: error: no template named 'remove_cvref_t' in namespace 'std'; did you mean '__remove_cvref_t'?
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                                 ~~~~~^~~~~~~~~~~~~~
                                      __remove_cvref_t
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/type_traits:2248:5: note: '__remove_cvref_t' declared here
    using __remove_cvref_t
    ^
src/uci/../chess/bitboard.hppIn file included from src/search/thread.cpp:1:
In file included from src/search/thread.hpp:4:
In file included from src/search/../chess/board.hpp:4:
In file included from src/search/../chess/board_state.hpp:6:
src/search/../chess/bitboard.hpp:186:92: error: expected ')'
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                                                                                           ^
src/search/../chess/bitboard.hpp:186:18: note: to match this '('
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                 ^
src/search/../chess/bitboard.hpp:186:24: error: parameter declarator cannot be qualified
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                  ~~~~~^
src/search/../chess/bitboard.hpp:186:24: error: parameter name cannot have template arguments
src/search/../chess/bitboard.hpp:186:24: error: C++ requires a type specifier for all declarations
src/search/../chess/bitboard.hpp:187:102: error: expected ')'
                  (std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, int> && rank_diff == 0)) &&
                                                                                                     ^
src/search/../chess/bitboard.hpp:186:17: note: to match this '('
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
                ^
src/search/../chess/bitboard.hpp:186:9: error: C++ requires a type specifier for all declarations
        requires((std::is_same_v<std::remove_cvref_t<decltype(rank_diff)>, RankDifference> ||
        ^
src/search/../chess/bitboard.hpp:190:7: error: 'nodiscard' attribute cannot be applied to types
    [[nodiscard]] constexpr Bitboard shift() const {
      ^
src/search/../chess/bitboard.hpp:190:18: error: expected ';' at end of declaration list
    [[nodiscard]] constexpr Bitboard shift() const {
                 ^
                 ;
src/search/../chess/bitboard.hpp:247:80: warning: defaulted comparison operators are a C++20 extension [-Wc++20-extensions]
        [[nodiscard]] constexpr bool operator==(Iterator const &other) const = default;
                                                                               ^
src/search/../chess/bitboard.hpp:26:21: error: no member named 'popcount' in namespace 'std'; did you mean '__popcount'?
        return std::popcount(raw_);
               ~~~~~^~~~~~~~
                    __popcount
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:289:5: note: '__popcount' declared here
    __popcount(_Tp __x) noexcept
    ^
In file included from :26:21: error: no member named 'popcount' in namespace 'std'; did you mean '__popcount'?
        return std::popcount(raw_);
               ~~~~~^~~~~~~~
                    __popcount
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:289:5: note: '__popcount' declared here
    __popcount(_Tp __x) noexcept
    ^
In file included from src/search/thread.cpp:1:
In file included from src/search/thread.hpp:4:
In file included from src/search/../chess/board.hpp:4:
In file included from src/search/../chess/board_state.hpp:6:
src/search/../chess/bitboard.hpp:30:21: error: no member named 'countr_zero' in namespace 'std'; did you mean '__countr_zero'?
        return std::countr_zero(raw_);
               ~~~~~^~~~~~~~~~~
                    __countr_zero
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:248:5: note: '__countr_zero' declared here
    __countr_zero(_Tp __x) noexcept
    ^
src/uci/uci.cpp:1:
In file included from src/uci/uci.hpp:4:
In file included from src/uci/../chess/board.hpp:4:
In file included from src/uci/../chess/board_state.hpp:6:
src/uci/../chess/bitboard.hpp:30:21: error: no member named 'countr_zero' in namespace 'std'; did you mean '__countr_zero'?
        return std::countr_zero(raw_);
               ~~~~~^~~~~~~~~~~
                    __countr_zero
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:248:5: note: '__countr_zero' declared here
    __countr_zero(_Tp __x) noexcept
    ^
In file included from src/search/thread.cpp:1:
In file included from src/search/thread.hpp:4:
In file included from src/search/../chess/board.hpp:4:
In file included from src/search/../chess/board_state.hpp:6:
src/search/../chess/bitboard.hpp:34:33: error: no member named 'countl_zero' in namespace 'std'; did you mean '__countl_zero'?
        return raw_ ? 63 - std::countl_zero(raw_) : 64;
                           ~~~~~^~~~~~~~~~~
                                __countl_zero
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:195:5: note: '__countl_zero' declared here
    __countl_zero(_Tp __x) noexcept
    ^
In file included from src/uci/uci.cpp:1:
In file included from src/uci/uci.hpp:4:
In file included from src/uci/../chess/board.hpp:4:
In file included from src/uci/../chess/board_state.hpp:6:
src/uci/../chess/bitboard.hpp:34:33: error: no member named 'countl_zero' in namespace 'std'; did you mean '__countl_zero'?
        return raw_ ? 63 - std::countl_zero(raw_) : 64;
                           ~~~~~^~~~~~~~~~~
                                __countl_zero
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bit:195:5: note: '__countl_zero' declared here
    __countl_zero(_Tp __x) noexcept
    ^
In file included from In file included from src/search/thread.cpp:1:
In file included from src/search/thread.hpp:4:
In file included from src/search/../chess/board.hpp:4:
In file included from src/search/../chess/board_state.hpp:6:
src/search/../chess/bitboard.hpp:38:21: error: no member named 'rotl' in namespace 'std'
        return std::rotl(raw_, shift);
               ~~~~~^
src/search/../chess/bitboard.hppsrc/uci/uci.cpp:1:
In file included from src/uci/uci.hpp:4:
In file included from src/uci/../chess/board.hpp:4:
In file included from src/uci/../chess/board_state.hpp:6:
src/uci/../chess/bitboard.hpp:38:21: error: no member named 'rotl' in namespace 'std'
        return std::rotl(raw_, shift);
               ~~~~~^
src/uci/../chess/bitboard.hpp:42:21: error: no member named 'rotr' in namespace 'std'
        return std::rotr(raw_, shift);
               ~~~~~^
:42:21: error: no member named 'rotr' in namespace 'std'
        return std::rotr(raw_, shift);
               ~~~~~^
src/uci/../chess/bitboard.hpp:58:28: error: invalid operands to binary expression ('Bitboard' and 'int')
        return (bb & raw_) != 0;
               ~~~~~~~~~~~ ^  ~
src/search/../chess/bitboard.hpp:58:28: error: invalid operands to binary expression ('Bitboard' and 'int')
        return (bb & raw_) != 0;
               ~~~~~~~~~~~ ^  ~
src/uci/../chess/bitboard.hppsrc/search/../chess/bitboard.hpp:231:16: error: use of undeclared identifier 'ray_precomp'
:        return ray_precomp<rank_diff, file_diff>[sq];
               ^
231src/search/../chess/bitboard.hpp:16: error: use of undeclared identifier 'ray_precomp'
:230        return ray_precomp<rank_diff, file_diff>[sq];
               ^
:45src/uci/../chess/bitboard.hpp: error: no return statement in constexpr function
:230    [[nodiscard]] static constexpr Bitboard get_ray_precomputed(Square sq) {
                                            ^
:45: error: no return statement in constexpr function
    [[nodiscard]] static constexpr Bitboard get_ray_precomputed(Square sq) {
                                            ^
fatal error: fatal error: too many errors emitted, stopping now [-ferror-limit=]
too many errors emitted, stopping now [-ferror-limit=]
22 warnings and 20 errors generated.
 warnings and 20 errors generated.
make: *** [Makefile:74: src/chess/move_gen.o] Error 1
make: *** Waiting for unfinished jobs....
make: *** [Makefile:74: src/chess/magics.o] Error 1
In file included from src/chess/board_state.cpp:1:
In file included from src/chess/board_state.hpp:9:
src/chess/zobrist.hpp:27:16: error: constexpr variable 'pieces' must be initialized by a constant expression
constexpr auto pieces = [] {
               ^        ~~~~
src/chess/zobrist.hpp:29:16: note: non-constexpr constructor 'MultiArray' cannot be used in a constant expression
    PieceTable piece_table;
               ^
src/chess/zobrist.hpp:27:25: note: in call to '&[] {
    auto next_u64 = [hash = 12477279837831370886ULL]() mutable {
        return hash = murmur3(hash);
    };
    zobrist::PieceTable piece_table;
    for (auto &table : piece_table)
        for (auto &color : table)
            for (u64 &square : color)
                square = next_u64();
    return piece_table;
}->operator()()'
constexpr auto pieces = [] {
                        ^
src/chess/../util/multi_array.hpp:29:7: note: declared here
class MultiArray {
      ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
2 warnings and 20 errors generated.
make: *** [Makefile:74: src/tests/perft.o] Error 1
2 warnings and 20 errors generated.
make: *** [Makefile:74: src/data_gen/format/monty_format.o] Error 1
In file included from src/eval/value_network.cpp:1:
In file included from src/eval/value_network.hpp:4:
In file included from src/eval/../chess/board_state.hpp:9:
src/eval/../chess/zobrist.hpp:27:16: error: constexpr variable 'pieces' must be initialized by a constant expression
constexpr auto pieces = [] {
               ^        ~~~~
src/eval/../chess/zobrist.hpp:29:16: note: non-constexpr constructor 'MultiArray' cannot be used in a constant expression
    PieceTable piece_table;
               ^
src/eval/../chess/zobrist.hpp:27:25: note: in call to '&[] {
    auto next_u64 = [hash = 12477279837831370886ULL]() mutable {
        return hash = murmur3(hash);
    };
    zobrist::PieceTable piece_table;
    for (auto &table : piece_table)
        for (auto &color : table)
            for (u64 &square : color)
                square = next_u64();
    return piece_table;
}->operator()()'
constexpr auto pieces = [] {
                        ^
src/eval/../chess/../util/multi_array.hpp:29:7: note: declared here
class MultiArray {
      ^
2 warnings and 20 errors generated.
fatal error: too many errors emitted, stopping now [-ferror-limit=]
make: *** [Makefile:74: src/tests/bench.o] Error 1
2 warnings and 20 errors generated.
3make: *** [Makefile:74: src/chess/board.o] Error 1
 warnings and 20 errors generated.
make: *** [Makefile:74: src/chess/move.o] Error 1
In file included from src/eval/networks.cpp:2:
In file included from src/eval/policy_network.hpp:4:
In file included from src/eval/../chess/board_state.hpp:9:
src/eval/../chess/zobrist.hpp:27:16: error: constexpr variable 'pieces' must be initialized by a constant expression
constexpr auto pieces = [] {
               ^        ~~~~
src/eval/../chess/zobrist.hpp:29:16: note: non-constexpr constructor 'MultiArray' cannot be used in a constant expression
    PieceTable piece_table;
               ^
src/eval/../chess/zobrist.hpp:27:25: note: in call to '&[] {
    auto next_u64 = [hash = 12477279837831370886ULL]() mutable {
        return hash = murmur3(hash);
    };
    zobrist::PieceTable piece_table;
    for (auto &table : piece_table)
        for (auto &color : table)
            for (u64 &square : color)
                square = next_u64();
    return piece_table;
}->operator()()'
constexpr auto pieces = [] {
                        ^
src/eval/../chess/../util/multi_array.hpp:29:7: note: declared here
class MultiArray {
      ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
2 warnings and 20 errors generated.
make: *** [Makefile:74: src/data_gen/openings.o] Error 1
2 warnings and 20 errors generated.
make: *** [Makefile:74: src/search/thread.o] Error 1
2 warnings and 20 errors generated.
make: *** [Makefile:74: src/data_gen/game_runner.o] Error 1
23 warnings and 20 errors generated.
 warnings and 20 errors generated.
make: *** [Makefile:74: src/chess/board_state.o] Error 1
make: *** [Makefile:74: src/search/searcher.o] Error 1
2 warnings and 20 errors generated.
make: *** [Makefile:74: src/main.o] Error 1
In file included from src/eval/policy_network.cpp:1:
In file included from src/eval/policy_network.hpp:4:
In file included from src/eval/../chess/board_state.hpp:9:
src/eval/../chess/zobrist.hpp:27:16: error: constexpr variable 'pieces' must be initialized by a constant expression
constexpr auto pieces = [] {
               ^        ~~~~
src/eval/../chess/zobrist.hpp:29:16: note: non-constexpr constructor 'MultiArray' cannot be used in a constant expression
    PieceTable piece_table;
               ^
src/eval/../chess/zobrist.hpp:27:25: note: in call to '&[] {
    auto next_u64 = [hash = 12477279837831370886ULL]() mutable {
        return hash = murmur3(hash);
    };
    zobrist::PieceTable piece_table;
    for (auto &table : piece_table)
        for (auto &color : table)
            for (u64 &square : color)
                square = next_u64();
    return piece_table;
}->operator()()'
constexpr auto pieces = [] {
                        ^
src/eval/../chess/../util/multi_array.hpp:29:7: note: declared here
class MultiArray {
      ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
3 warnings and 20 errors generated.
make: *** [Makefile:74: src/eval/value_network.o] Error 1
3 warnings and 20 errors generated.
make: *** [Makefile:74: src/eval/networks.o] Error 1
2 warnings and 20 errors generated.
make: *** [Makefile:74: src/search/game_tree.o] Error 1
2 warnings and 20 errors generated.
make: *** [Makefile:74: src/uci/uci.o] Error 1
3 warnings and 20 errors generated.
make: *** [Makefile:74: src/eval/policy_network.o] Error 1