g++ -Wall -Wextra -Wpedantic -Wshadow -pedantic -pthread -std=c++20 -march=native -O3 -funroll-loops -DEVALFILE=\"/root/OpenBench2/Client/Networks/66281CFC\" schoenemann.cpp search.cpp time.cpp helper.cpp tt.cpp moveorder.cpp see.cpp tune.cpp datagen.cpp history.cpp -o Schoenemann-76169924-66281CFC
In file included from time.h:23,
                 from search.h:27,
                 from helper.h:23,
                 from schoenemann.cpp:25:
chess.hpp: In constructor ‘constexpr chess::File::File(chess::File::underlying)’:
chess.hpp:188:35: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  188 |         constexpr File(underlying file) : file(file) {}
      |                        ~~~~~~~~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::File::File(chess::File::underlying)’:
chess.hpp:188:35: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  188 |         constexpr File(underlying file) : file(file) {}
      |                        ~~~~~~~~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::File::File(chess::File::underlying)’:
chess.hpp:188:35: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  188 |         constexpr File(underlying file) : file(file) {}
      |                        ~~~~~~~~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::File::File(int)’:
chess.hpp:189:28: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  189 |         constexpr File(int file) : file(static_cast<underlying>(file)) {}
      |                        ~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::File::File(int)’:
chess.hpp:189:28: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  189 |         constexpr File(int file) : file(static_cast<underlying>(file)) {}
      |                        ~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::File::File(int)’:
chess.hpp:189:28: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  189 |         constexpr File(int file) : file(static_cast<underlying>(file)) {}
      |                        ~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::Square::Square(int)’:
chess.hpp:330:30: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  330 |         constexpr Square(int sq) : sq(static_cast<underlying>(sq)) {}
      |                          ~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Square::Square(int)’:
chess.hpp:330:30: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  330 |         constexpr Square(int sq) : sq(static_cast<underlying>(sq)) {}
      |                          ~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Square::Square(int)’:
chess.hpp:330:30: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  330 |         constexpr Square(int sq) : sq(static_cast<underlying>(sq)) {}
      |                          ~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Square::Square(chess::Square::underlying)’:
chess.hpp:333:37: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  333 |         constexpr Square(underlying sq) : sq(sq) {}
      |                          ~~~~~~~~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Square::Square(chess::Square::underlying)’:
chess.hpp:333:37: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  333 |         constexpr Square(underlying sq) : sq(sq) {}
      |                          ~~~~~~~~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Square::Square(chess::Square::underlying)’:
chess.hpp:333:37: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  333 |         constexpr Square(underlying sq) : sq(sq) {}
      |                          ~~~~~~~~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Bitboard::Bitboard(uint64_t)’:
chess.hpp:552:42: warning: declaration of ‘bits’ shadows a member of ‘chess::Bitboard’ [-Wshadow]
  552 |         constexpr Bitboard(std::uint64_t bits) : bits(bits) {}
      |                            ~~~~~~~~~~~~~~^~~~
chess.hpp:729:23: note: shadowed declaration is here
  729 |         std::uint64_t bits;
      |                       ^~~~
chess.hpp: In constructor ‘constexpr chess::Bitboard::Bitboard(uint64_t)’:
chess.hpp:552:42: warning: declaration of ‘bits’ shadows a member of ‘chess::Bitboard’ [-Wshadow]
  552 |         constexpr Bitboard(std::uint64_t bits) : bits(bits) {}
      |                            ~~~~~~~~~~~~~~^~~~
chess.hpp:729:23: note: shadowed declaration is here
  729 |         std::uint64_t bits;
      |                       ^~~~
chess.hpp: In constructor ‘constexpr chess::Bitboard::Bitboard(uint64_t)’:
chess.hpp:552:42: warning: declaration of ‘bits’ shadows a member of ‘chess::Bitboard’ [-Wshadow]
  552 |         constexpr Bitboard(std::uint64_t bits) : bits(bits) {}
      |                            ~~~~~~~~~~~~~~^~~~
chess.hpp:729:23: note: shadowed declaration is here
  729 |         std::uint64_t bits;
      |                       ^~~~
chess.hpp: In member function ‘constexpr int chess::Bitboard::lsb() const’:
chess.hpp:660:25: error: ‘countr_zero’ is not a member of ‘std’
  660 |             return std::countr_zero(bits);
      |                         ^~~~~~~~~~~
chess.hpp: In member function ‘constexpr int chess::Bitboard::msb() const’:
chess.hpp:682:25: error: ‘countl_zero’ is not a member of ‘std’
  682 |             return std::countl_zero(bits) ^ 63;
      |                         ^~~~~~~~~~~
chess.hpp: In member function ‘constexpr int chess::Bitboard::count() const’:
chess.hpp:703:25: error: ‘popcount’ is not a member of ‘std’; did you mean ‘count’?
  703 |             return std::popcount(bits);
      |                         ^~~~~~~~
      |                         count
In file included from time.h:23,
                 from search.h:27,
                 from helper.h:23,
                 from schoenemann.cpp:25:
chess.hpp: In constructor ‘constexpr chess::PieceType::PieceType(chess::PieceType::underlying)’:
chess.hpp:968:40: warning: declaration of ‘pt’ shadows a member of ‘chess::PieceType’ [-Wshadow]
  968 |         constexpr PieceType(underlying pt) : pt(pt) {}
      |                             ~~~~~~~~~~~^~
chess.hpp:1053:20: note: shadowed declaration is here
 1053 |         underlying pt;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::PieceType::PieceType(chess::PieceType::underlying)’:
chess.hpp:968:40: warning: declaration of ‘pt’ shadows a member of ‘chess::PieceType’ [-Wshadow]
  968 |         constexpr PieceType(underlying pt) : pt(pt) {}
      |                             ~~~~~~~~~~~^~
chess.hpp:1053:20: note: shadowed declaration is here
 1053 |         underlying pt;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::PieceType::PieceType(chess::PieceType::underlying)’:
chess.hpp:968:40: warning: declaration of ‘pt’ shadows a member of ‘chess::PieceType’ [-Wshadow]
  968 |         constexpr PieceType(underlying pt) : pt(pt) {}
      |                             ~~~~~~~~~~~^~
chess.hpp:1053:20: note: shadowed declaration is here
 1053 |         underlying pt;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Piece::Piece(chess::Piece::underlying)’:
chess.hpp:1083:36: warning: declaration of ‘piece’ shadows a member of ‘chess::Piece’ [-Wshadow]
 1083 |         constexpr Piece(underlying piece) : piece(piece) {}
      |                         ~~~~~~~~~~~^~~~~
chess.hpp:1174:20: note: shadowed declaration is here
 1174 |         underlying piece;
      |                    ^~~~~
chess.hpp: In constructor ‘constexpr chess::Piece::Piece(chess::Piece::underlying)’:
chess.hpp:1083:36: warning: declaration of ‘piece’ shadows a member of ‘chess::Piece’ [-Wshadow]
 1083 |         constexpr Piece(underlying piece) : piece(piece) {}
      |                         ~~~~~~~~~~~^~~~~
chess.hpp:1174:20: note: shadowed declaration is here
 1174 |         underlying piece;
      |                    ^~~~~
chess.hpp: In constructor ‘constexpr chess::Piece::Piece(chess::Piece::underlying)’:
chess.hpp:1083:36: warning: declaration of ‘piece’ shadows a member of ‘chess::Piece’ [-Wshadow]
 1083 |         constexpr Piece(underlying piece) : piece(piece) {}
      |                         ~~~~~~~~~~~^~~~~
chess.hpp:1174:20: note: shadowed declaration is here
 1174 |         underlying piece;
      |                    ^~~~~
In file included from time.h:23,
                 from search.h:27,
                 from helper.h:23,
                 from schoenemann.cpp:25:
chess.hpp: In constructor ‘chess::Board::State::State(const U64&, const chess::Board::CastlingRights&, const chess::Square&, const uint8_t&, const chess::Piece&)’:
chess.hpp:1782:32: warning: declaration of ‘captured_piece’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1782 |                   const Piece &captured_piece)
      |                   ~~~~~~~~~~~~~^~~~~~~~~~~~~~
chess.hpp:1779:19: note: shadowed declaration is here
 1779 |             Piece captured_piece;
      |                   ^~~~~~~~~~~~~~
chess.hpp:1781:108: warning: declaration of ‘half_moves’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                                             ~~~~~~~~~~~~~~~^~~~~~~~~~
chess.hpp:1778:21: note: shadowed declaration is here
 1778 |             uint8_t half_moves;
      |                     ^~~~~~~~~~
chess.hpp:1781:82: warning: declaration of ‘enpassant’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                    ~~~~~~~~~~~~~~^~~~~~~~~
chess.hpp:1777:20: note: shadowed declaration is here
 1777 |             Square enpassant;
      |                    ^~~~~~~~~
chess.hpp:1781:58: warning: declaration of ‘castling’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                    ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
chess.hpp:1776:28: note: shadowed declaration is here
 1776 |             CastlingRights castling;
      |                            ^~~~~~~~
chess.hpp:1781:30: warning: declaration of ‘hash’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                   ~~~~~~~~~~~^~~~
chess.hpp:1775:17: note: shadowed declaration is here
 1775 |             U64 hash;
      |                 ^~~~
chess.hpp: In constructor ‘chess::Board::State::State(const U64&, const chess::Board::CastlingRights&, const chess::Square&, const uint8_t&, const chess::Piece&)’:
chess.hpp:1782:32: warning: declaration of ‘captured_piece’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1782 |                   const Piece &captured_piece)
      |                   ~~~~~~~~~~~~~^~~~~~~~~~~~~~
chess.hpp:1779:19: note: shadowed declaration is here
 1779 |             Piece captured_piece;
      |                   ^~~~~~~~~~~~~~
chess.hpp:1781:108: warning: declaration of ‘half_moves’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                                             ~~~~~~~~~~~~~~~^~~~~~~~~~
chess.hpp:1778:21: note: shadowed declaration is here
 1778 |             uint8_t half_moves;
      |                     ^~~~~~~~~~
chess.hpp:1781:82: warning: declaration of ‘enpassant’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                    ~~~~~~~~~~~~~~^~~~~~~~~
chess.hpp:1777:20: note: shadowed declaration is here
 1777 |             Square enpassant;
      |                    ^~~~~~~~~
chess.hpp:1781:58: warning: declaration of ‘castling’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                    ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
chess.hpp:1776:28: note: shadowed declaration is here
 1776 |             CastlingRights castling;
      |                            ^~~~~~~~
chess.hpp:1781:30: warning: declaration of ‘hash’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                   ~~~~~~~~~~~^~~~
chess.hpp:1775:17: note: shadowed declaration is here
 1775 |             U64 hash;
      |                 ^~~~
chess.hpp: In constructor ‘chess::Board::State::State(const U64&, const chess::Board::CastlingRights&, const chess::Square&, const uint8_t&, const chess::Piece&)’:
chess.hpp:1782:32: warning: declaration of ‘captured_piece’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1782 |                   const Piece &captured_piece)
      |                   ~~~~~~~~~~~~~^~~~~~~~~~~~~~
chess.hpp:1779:19: note: shadowed declaration is here
 1779 |             Piece captured_piece;
      |                   ^~~~~~~~~~~~~~
chess.hpp:1781:108: warning: declaration of ‘half_moves’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                                             ~~~~~~~~~~~~~~~^~~~~~~~~~
chess.hpp:1778:21: note: shadowed declaration is here
 1778 |             uint8_t half_moves;
      |                     ^~~~~~~~~~
chess.hpp:1781:82: warning: declaration of ‘enpassant’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                    ~~~~~~~~~~~~~~^~~~~~~~~
chess.hpp:1777:20: note: shadowed declaration is here
 1777 |             Square enpassant;
      |                    ^~~~~~~~~
chess.hpp:1781:58: warning: declaration of ‘castling’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                    ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
chess.hpp:1776:28: note: shadowed declaration is here
 1776 |             CastlingRights castling;
      |                            ^~~~~~~~
chess.hpp:1781:30: warning: declaration of ‘hash’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                   ~~~~~~~~~~~^~~~
chess.hpp:1775:17: note: shadowed declaration is here
 1775 |             U64 hash;
      |                 ^~~~
chess.hpp: In constructor ‘chess::Board::Board(network*, std::string_view, bool)’:
chess.hpp:1799:33: warning: declaration of ‘net’ shadows a member of ‘chess::Board’ [-Wshadow]
 1799 |         explicit Board(network* net = nullptr, std::string_view fen = constants::STARTPOS, bool chess960 = false)
      |                        ~~~~~~~~~^~~~~~~~~~~~~
chess.hpp:2484:18: note: shadowed declaration is here
 2484 |         network* net;
      |                  ^~~
chess.hpp: In constructor ‘chess::Board::Board(network*, std::string_view, bool)’:
chess.hpp:1799:33: warning: declaration of ‘net’ shadows a member of ‘chess::Board’ [-Wshadow]
 1799 |         explicit Board(network* net = nullptr, std::string_view fen = constants::STARTPOS, bool chess960 = false)
      |                        ~~~~~~~~~^~~~~~~~~~~~~
chess.hpp:2484:18: note: shadowed declaration is here
 2484 |         network* net;
      |                  ^~~
chess.hpp: In constructor ‘chess::Board::Board(network*, std::string_view, bool)’:
chess.hpp:1799:33: warning: declaration of ‘net’ shadows a member of ‘chess::Board’ [-Wshadow]
 1799 |         explicit Board(network* net = nullptr, std::string_view fen = constants::STARTPOS, bool chess960 = false)
      |                        ~~~~~~~~~^~~~~~~~~~~~~
chess.hpp:2484:18: note: shadowed declaration is here
 2484 |         network* net;
      |                  ^~~
In file included from search.h:29,
                 from helper.h:23,
                 from schoenemann.cpp:25:
moveorder.h: In constructor ‘MoveOrder::MoveOrder(History&)’:
moveorder.h:32:24: warning: declaration of ‘history’ shadows a member of ‘MoveOrder’ [-Wshadow]
   32 |     MoveOrder(History& history) : history(history) {}
      |               ~~~~~~~~~^~~~~~~
moveorder.h:30:13: note: shadowed declaration is here
   30 |     History history;
      |             ^~~~~~~
moveorder.h: In constructor ‘MoveOrder::MoveOrder(History&)’:
moveorder.h:32:24: warning: declaration of ‘history’ shadows a member of ‘MoveOrder’ [-Wshadow]
   32 |     MoveOrder(History& history) : history(history) {}
      |               ~~~~~~~~~^~~~~~~
moveorder.h:30:13: note: shadowed declaration is here
   30 |     History history;
      |             ^~~~~~~
moveorder.h: In constructor ‘MoveOrder::MoveOrder(History&)’:
moveorder.h:32:24: warning: declaration of ‘history’ shadows a member of ‘MoveOrder’ [-Wshadow]
   32 |     MoveOrder(History& history) : history(history) {}
      |               ~~~~~~~~~^~~~~~~
moveorder.h:30:13: note: shadowed declaration is here
   30 |     History history;
      |             ^~~~~~~
In file included from helper.h:23,
                 from schoenemann.cpp:25:
search.h: In constructor ‘Search::Search(Time&, tt&, History&, MoveOrder&, network&)’:
search.h:39:29: warning: declaration of ‘net’ shadows a member of ‘Search’ [-Wshadow]
   39 |                    network &net) : timeManagement(timeManagement),
      |                    ~~~~~~~~~^~~
search.h:80:18: note: shadowed declaration is here
   80 |         network &net;
      |                  ^~~
search.h:38:31: warning: declaration of ‘moveOrder’ shadows a member of ‘Search’ [-Wshadow]
   38 |                    MoveOrder &moveOrder,
      |                    ~~~~~~~~~~~^~~~~~~~~
search.h:79:20: note: shadowed declaration is here
   79 |         MoveOrder &moveOrder;
      |                    ^~~~~~~~~
search.h:37:29: warning: declaration of ‘history’ shadows a member of ‘Search’ [-Wshadow]
   37 |                    History &history,
      |                    ~~~~~~~~~^~~~~~~
search.h:78:18: note: shadowed declaration is here
   78 |         History &history;
      |                  ^~~~~~~
search.h:36:24: warning: declaration of ‘transpositionTabel’ shadows a member of ‘Search’ [-Wshadow]
   36 |                    tt &transpositionTabel,
      |                    ~~~~^~~~~~~~~~~~~~~~~~
search.h:77:13: note: shadowed declaration is here
   77 |         tt &transpositionTabel;
      |             ^~~~~~~~~~~~~~~~~~
search.h:35:22: warning: declaration of ‘timeManagement’ shadows a member of ‘Search’ [-Wshadow]
   35 |         Search(Time &timeManagement,
      |                ~~~~~~^~~~~~~~~~~~~~
search.h:76:15: note: shadowed declaration is here
   76 |         Time &timeManagement;
      |               ^~~~~~~~~~~~~~
search.h: In constructor ‘Search::Search(Time&, tt&, History&, MoveOrder&, network&)’:
search.h:39:29: warning: declaration of ‘net’ shadows a member of ‘Search’ [-Wshadow]
   39 |                    network &net) : timeManagement(timeManagement),
      |                    ~~~~~~~~~^~~
search.h:80:18: note: shadowed declaration is here
   80 |         network &net;
      |                  ^~~
search.h:38:31: warning: declaration of ‘moveOrder’ shadows a member of ‘Search’ [-Wshadow]
   38 |                    MoveOrder &moveOrder,
      |                    ~~~~~~~~~~~^~~~~~~~~
search.h:79:20: note: shadowed declaration is here
   79 |         MoveOrder &moveOrder;
      |                    ^~~~~~~~~
search.h:37:29: warning: declaration of ‘history’ shadows a member of ‘Search’ [-Wshadow]
   37 |                    History &history,
      |                    ~~~~~~~~~^~~~~~~
search.h:78:18: note: shadowed declaration is here
   78 |         History &history;
      |                  ^~~~~~~
search.h:36:24: warning: declaration of ‘transpositionTabel’ shadows a member of ‘Search’ [-Wshadow]
   36 |                    tt &transpositionTabel,
      |                    ~~~~^~~~~~~~~~~~~~~~~~
search.h:77:13: note: shadowed declaration is here
   77 |         tt &transpositionTabel;
      |             ^~~~~~~~~~~~~~~~~~
search.h:35:22: warning: declaration of ‘timeManagement’ shadows a member of ‘Search’ [-Wshadow]
   35 |         Search(Time &timeManagement,
      |                ~~~~~~^~~~~~~~~~~~~~
search.h:76:15: note: shadowed declaration is here
   76 |         Time &timeManagement;
      |               ^~~~~~~~~~~~~~
search.h: In constructor ‘Search::Search(Time&, tt&, History&, MoveOrder&, network&)’:
search.h:39:29: warning: declaration of ‘net’ shadows a member of ‘Search’ [-Wshadow]
   39 |                    network &net) : timeManagement(timeManagement),
      |                    ~~~~~~~~~^~~
search.h:80:18: note: shadowed declaration is here
   80 |         network &net;
      |                  ^~~
search.h:38:31: warning: declaration of ‘moveOrder’ shadows a member of ‘Search’ [-Wshadow]
   38 |                    MoveOrder &moveOrder,
      |                    ~~~~~~~~~~~^~~~~~~~~
search.h:79:20: note: shadowed declaration is here
   79 |         MoveOrder &moveOrder;
      |                    ^~~~~~~~~
search.h:37:29: warning: declaration of ‘history’ shadows a member of ‘Search’ [-Wshadow]
   37 |                    History &history,
      |                    ~~~~~~~~~^~~~~~~
search.h:78:18: note: shadowed declaration is here
   78 |         History &history;
      |                  ^~~~~~~
search.h:36:24: warning: declaration of ‘transpositionTabel’ shadows a member of ‘Search’ [-Wshadow]
   36 |                    tt &transpositionTabel,
      |                    ~~~~^~~~~~~~~~~~~~~~~~
search.h:77:13: note: shadowed declaration is here
   77 |         tt &transpositionTabel;
      |             ^~~~~~~~~~~~~~~~~~
search.h:35:22: warning: declaration of ‘timeManagement’ shadows a member of ‘Search’ [-Wshadow]
   35 |         Search(Time &timeManagement,
      |                ~~~~~~^~~~~~~~~~~~~~
search.h:76:15: note: shadowed declaration is here
   76 |         Time &timeManagement;
      |               ^~~~~~~~~~~~~~
In file included from time.h:23,
                 from search.h:27,
                 from search.cpp:22:
chess.hpp: In constructor ‘constexpr chess::File::File(chess::File::underlying)’:
chess.hpp:188:35: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  188 |         constexpr File(underlying file) : file(file) {}
      |                        ~~~~~~~~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::File::File(chess::File::underlying)’:
chess.hpp:188:35: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  188 |         constexpr File(underlying file) : file(file) {}
      |                        ~~~~~~~~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::File::File(chess::File::underlying)’:
chess.hpp:188:35: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  188 |         constexpr File(underlying file) : file(file) {}
      |                        ~~~~~~~~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::File::File(int)’:
chess.hpp:189:28: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  189 |         constexpr File(int file) : file(static_cast<underlying>(file)) {}
      |                        ~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::File::File(int)’:
chess.hpp:189:28: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  189 |         constexpr File(int file) : file(static_cast<underlying>(file)) {}
      |                        ~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::File::File(int)’:
chess.hpp:189:28: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  189 |         constexpr File(int file) : file(static_cast<underlying>(file)) {}
      |                        ~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::Square::Square(int)’:
chess.hpp:330:30: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  330 |         constexpr Square(int sq) : sq(static_cast<underlying>(sq)) {}
      |                          ~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Square::Square(int)’:
chess.hpp:330:30: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  330 |         constexpr Square(int sq) : sq(static_cast<underlying>(sq)) {}
      |                          ~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Square::Square(int)’:
chess.hpp:330:30: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  330 |         constexpr Square(int sq) : sq(static_cast<underlying>(sq)) {}
      |                          ~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Square::Square(chess::Square::underlying)’:
chess.hpp:333:37: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  333 |         constexpr Square(underlying sq) : sq(sq) {}
      |                          ~~~~~~~~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Square::Square(chess::Square::underlying)’:
chess.hpp:333:37: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  333 |         constexpr Square(underlying sq) : sq(sq) {}
      |                          ~~~~~~~~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Square::Square(chess::Square::underlying)’:
chess.hpp:333:37: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  333 |         constexpr Square(underlying sq) : sq(sq) {}
      |                          ~~~~~~~~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Bitboard::Bitboard(uint64_t)’:
chess.hpp:552:42: warning: declaration of ‘bits’ shadows a member of ‘chess::Bitboard’ [-Wshadow]
  552 |         constexpr Bitboard(std::uint64_t bits) : bits(bits) {}
      |                            ~~~~~~~~~~~~~~^~~~
chess.hpp:729:23: note: shadowed declaration is here
  729 |         std::uint64_t bits;
      |                       ^~~~
chess.hpp: In constructor ‘constexpr chess::Bitboard::Bitboard(uint64_t)’:
chess.hpp:552:42: warning: declaration of ‘bits’ shadows a member of ‘chess::Bitboard’ [-Wshadow]
  552 |         constexpr Bitboard(std::uint64_t bits) : bits(bits) {}
      |                            ~~~~~~~~~~~~~~^~~~
chess.hpp:729:23: note: shadowed declaration is here
  729 |         std::uint64_t bits;
      |                       ^~~~
chess.hpp: In constructor ‘constexpr chess::Bitboard::Bitboard(uint64_t)’:
chess.hpp:552:42: warning: declaration of ‘bits’ shadows a member of ‘chess::Bitboard’ [-Wshadow]
  552 |         constexpr Bitboard(std::uint64_t bits) : bits(bits) {}
      |                            ~~~~~~~~~~~~~~^~~~
chess.hpp:729:23: note: shadowed declaration is here
  729 |         std::uint64_t bits;
      |                       ^~~~
chess.hpp: In member function ‘constexpr int chess::Bitboard::lsb() const’:
chess.hpp:660:25: error: ‘countr_zero’ is not a member of ‘std’
  660 |             return std::countr_zero(bits);
      |                         ^~~~~~~~~~~
chess.hpp: In member function ‘constexpr int chess::Bitboard::msb() const’:
chess.hpp:682:25: error: ‘countl_zero’ is not a member of ‘std’
  682 |             return std::countl_zero(bits) ^ 63;
      |                         ^~~~~~~~~~~
chess.hpp: In member function ‘constexpr int chess::Bitboard::count() const’:
chess.hpp:703:25: error: ‘popcount’ is not a member of ‘std’; did you mean ‘count’?
  703 |             return std::popcount(bits);
      |                         ^~~~~~~~
      |                         count
In file included from time.h:23,
                 from search.h:27,
                 from search.cpp:22:
chess.hpp: In constructor ‘constexpr chess::PieceType::PieceType(chess::PieceType::underlying)’:
chess.hpp:968:40: warning: declaration of ‘pt’ shadows a member of ‘chess::PieceType’ [-Wshadow]
  968 |         constexpr PieceType(underlying pt) : pt(pt) {}
      |                             ~~~~~~~~~~~^~
chess.hpp:1053:20: note: shadowed declaration is here
 1053 |         underlying pt;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::PieceType::PieceType(chess::PieceType::underlying)’:
chess.hpp:968:40: warning: declaration of ‘pt’ shadows a member of ‘chess::PieceType’ [-Wshadow]
  968 |         constexpr PieceType(underlying pt) : pt(pt) {}
      |                             ~~~~~~~~~~~^~
chess.hpp:1053:20: note: shadowed declaration is here
 1053 |         underlying pt;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::PieceType::PieceType(chess::PieceType::underlying)’:
chess.hpp:968:40: warning: declaration of ‘pt’ shadows a member of ‘chess::PieceType’ [-Wshadow]
  968 |         constexpr PieceType(underlying pt) : pt(pt) {}
      |                             ~~~~~~~~~~~^~
chess.hpp:1053:20: note: shadowed declaration is here
 1053 |         underlying pt;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Piece::Piece(chess::Piece::underlying)’:
chess.hpp:1083:36: warning: declaration of ‘piece’ shadows a member of ‘chess::Piece’ [-Wshadow]
 1083 |         constexpr Piece(underlying piece) : piece(piece) {}
      |                         ~~~~~~~~~~~^~~~~
chess.hpp:1174:20: note: shadowed declaration is here
 1174 |         underlying piece;
      |                    ^~~~~
chess.hpp: In constructor ‘constexpr chess::Piece::Piece(chess::Piece::underlying)’:
chess.hpp:1083:36: warning: declaration of ‘piece’ shadows a member of ‘chess::Piece’ [-Wshadow]
 1083 |         constexpr Piece(underlying piece) : piece(piece) {}
      |                         ~~~~~~~~~~~^~~~~
chess.hpp:1174:20: note: shadowed declaration is here
 1174 |         underlying piece;
      |                    ^~~~~
chess.hpp: In constructor ‘constexpr chess::Piece::Piece(chess::Piece::underlying)’:
chess.hpp:1083:36: warning: declaration of ‘piece’ shadows a member of ‘chess::Piece’ [-Wshadow]
 1083 |         constexpr Piece(underlying piece) : piece(piece) {}
      |                         ~~~~~~~~~~~^~~~~
chess.hpp:1174:20: note: shadowed declaration is here
 1174 |         underlying piece;
      |                    ^~~~~
In file included from time.h:23,
                 from search.h:27,
                 from search.cpp:22:
chess.hpp: In constructor ‘chess::Board::State::State(const U64&, const chess::Board::CastlingRights&, const chess::Square&, const uint8_t&, const chess::Piece&)’:
chess.hpp:1782:32: warning: declaration of ‘captured_piece’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1782 |                   const Piece &captured_piece)
      |                   ~~~~~~~~~~~~~^~~~~~~~~~~~~~
chess.hpp:1779:19: note: shadowed declaration is here
 1779 |             Piece captured_piece;
      |                   ^~~~~~~~~~~~~~
chess.hpp:1781:108: warning: declaration of ‘half_moves’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                                             ~~~~~~~~~~~~~~~^~~~~~~~~~
chess.hpp:1778:21: note: shadowed declaration is here
 1778 |             uint8_t half_moves;
      |                     ^~~~~~~~~~
chess.hpp:1781:82: warning: declaration of ‘enpassant’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                    ~~~~~~~~~~~~~~^~~~~~~~~
chess.hpp:1777:20: note: shadowed declaration is here
 1777 |             Square enpassant;
      |                    ^~~~~~~~~
chess.hpp:1781:58: warning: declaration of ‘castling’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                    ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
chess.hpp:1776:28: note: shadowed declaration is here
 1776 |             CastlingRights castling;
      |                            ^~~~~~~~
chess.hpp:1781:30: warning: declaration of ‘hash’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                   ~~~~~~~~~~~^~~~
chess.hpp:1775:17: note: shadowed declaration is here
 1775 |             U64 hash;
      |                 ^~~~
chess.hpp: In constructor ‘chess::Board::State::State(const U64&, const chess::Board::CastlingRights&, const chess::Square&, const uint8_t&, const chess::Piece&)’:
chess.hpp:1782:32: warning: declaration of ‘captured_piece’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1782 |                   const Piece &captured_piece)
      |                   ~~~~~~~~~~~~~^~~~~~~~~~~~~~
chess.hpp:1779:19: note: shadowed declaration is here
 1779 |             Piece captured_piece;
      |                   ^~~~~~~~~~~~~~
chess.hpp:1781:108: warning: declaration of ‘half_moves’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                                             ~~~~~~~~~~~~~~~^~~~~~~~~~
chess.hpp:1778:21: note: shadowed declaration is here
 1778 |             uint8_t half_moves;
      |                     ^~~~~~~~~~
chess.hpp:1781:82: warning: declaration of ‘enpassant’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                    ~~~~~~~~~~~~~~^~~~~~~~~
chess.hpp:1777:20: note: shadowed declaration is here
 1777 |             Square enpassant;
      |                    ^~~~~~~~~
chess.hpp:1781:58: warning: declaration of ‘castling’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                    ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
chess.hpp:1776:28: note: shadowed declaration is here
 1776 |             CastlingRights castling;
      |                            ^~~~~~~~
chess.hpp:1781:30: warning: declaration of ‘hash’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                   ~~~~~~~~~~~^~~~
chess.hpp:1775:17: note: shadowed declaration is here
 1775 |             U64 hash;
      |                 ^~~~
chess.hpp: In constructor ‘chess::Board::State::State(const U64&, const chess::Board::CastlingRights&, const chess::Square&, const uint8_t&, const chess::Piece&)’:
chess.hpp:1782:32: warning: declaration of ‘captured_piece’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1782 |                   const Piece &captured_piece)
      |                   ~~~~~~~~~~~~~^~~~~~~~~~~~~~
chess.hpp:1779:19: note: shadowed declaration is here
 1779 |             Piece captured_piece;
      |                   ^~~~~~~~~~~~~~
chess.hpp:1781:108: warning: declaration of ‘half_moves’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                                             ~~~~~~~~~~~~~~~^~~~~~~~~~
chess.hpp:1778:21: note: shadowed declaration is here
 1778 |             uint8_t half_moves;
      |                     ^~~~~~~~~~
chess.hpp:1781:82: warning: declaration of ‘enpassant’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                    ~~~~~~~~~~~~~~^~~~~~~~~
chess.hpp:1777:20: note: shadowed declaration is here
 1777 |             Square enpassant;
      |                    ^~~~~~~~~
chess.hpp:1781:58: warning: declaration of ‘castling’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                    ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
chess.hpp:1776:28: note: shadowed declaration is here
 1776 |             CastlingRights castling;
      |                            ^~~~~~~~
chess.hpp:1781:30: warning: declaration of ‘hash’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                   ~~~~~~~~~~~^~~~
chess.hpp:1775:17: note: shadowed declaration is here
 1775 |             U64 hash;
      |                 ^~~~
chess.hpp: In constructor ‘chess::Board::Board(network*, std::string_view, bool)’:
chess.hpp:1799:33: warning: declaration of ‘net’ shadows a member of ‘chess::Board’ [-Wshadow]
 1799 |         explicit Board(network* net = nullptr, std::string_view fen = constants::STARTPOS, bool chess960 = false)
      |                        ~~~~~~~~~^~~~~~~~~~~~~
chess.hpp:2484:18: note: shadowed declaration is here
 2484 |         network* net;
      |                  ^~~
chess.hpp: In constructor ‘chess::Board::Board(network*, std::string_view, bool)’:
chess.hpp:1799:33: warning: declaration of ‘net’ shadows a member of ‘chess::Board’ [-Wshadow]
 1799 |         explicit Board(network* net = nullptr, std::string_view fen = constants::STARTPOS, bool chess960 = false)
      |                        ~~~~~~~~~^~~~~~~~~~~~~
chess.hpp:2484:18: note: shadowed declaration is here
 2484 |         network* net;
      |                  ^~~
chess.hpp: In constructor ‘chess::Board::Board(network*, std::string_view, bool)’:
chess.hpp:1799:33: warning: declaration of ‘net’ shadows a member of ‘chess::Board’ [-Wshadow]
 1799 |         explicit Board(network* net = nullptr, std::string_view fen = constants::STARTPOS, bool chess960 = false)
      |                        ~~~~~~~~~^~~~~~~~~~~~~
chess.hpp:2484:18: note: shadowed declaration is here
 2484 |         network* net;
      |                  ^~~
In file included from search.h:29,
                 from search.cpp:22:
moveorder.h: In constructor ‘MoveOrder::MoveOrder(History&)’:
moveorder.h:32:24: warning: declaration of ‘history’ shadows a member of ‘MoveOrder’ [-Wshadow]
   32 |     MoveOrder(History& history) : history(history) {}
      |               ~~~~~~~~~^~~~~~~
moveorder.h:30:13: note: shadowed declaration is here
   30 |     History history;
      |             ^~~~~~~
moveorder.h: In constructor ‘MoveOrder::MoveOrder(History&)’:
moveorder.h:32:24: warning: declaration of ‘history’ shadows a member of ‘MoveOrder’ [-Wshadow]
   32 |     MoveOrder(History& history) : history(history) {}
      |               ~~~~~~~~~^~~~~~~
moveorder.h:30:13: note: shadowed declaration is here
   30 |     History history;
      |             ^~~~~~~
moveorder.h: In constructor ‘MoveOrder::MoveOrder(History&)’:
moveorder.h:32:24: warning: declaration of ‘history’ shadows a member of ‘MoveOrder’ [-Wshadow]
   32 |     MoveOrder(History& history) : history(history) {}
      |               ~~~~~~~~~^~~~~~~
moveorder.h:30:13: note: shadowed declaration is here
   30 |     History history;
      |             ^~~~~~~
In file included from search.cpp:22:
search.h: In constructor ‘Search::Search(Time&, tt&, History&, MoveOrder&, network&)’:
search.h:39:29: warning: declaration of ‘net’ shadows a member of ‘Search’ [-Wshadow]
   39 |                    network &net) : timeManagement(timeManagement),
      |                    ~~~~~~~~~^~~
search.h:80:18: note: shadowed declaration is here
   80 |         network &net;
      |                  ^~~
search.h:38:31: warning: declaration of ‘moveOrder’ shadows a member of ‘Search’ [-Wshadow]
   38 |                    MoveOrder &moveOrder,
      |                    ~~~~~~~~~~~^~~~~~~~~
search.h:79:20: note: shadowed declaration is here
   79 |         MoveOrder &moveOrder;
      |                    ^~~~~~~~~
search.h:37:29: warning: declaration of ‘history’ shadows a member of ‘Search’ [-Wshadow]
   37 |                    History &history,
      |                    ~~~~~~~~~^~~~~~~
search.h:78:18: note: shadowed declaration is here
   78 |         History &history;
      |                  ^~~~~~~
search.h:36:24: warning: declaration of ‘transpositionTabel’ shadows a member of ‘Search’ [-Wshadow]
   36 |                    tt &transpositionTabel,
      |                    ~~~~^~~~~~~~~~~~~~~~~~
search.h:77:13: note: shadowed declaration is here
   77 |         tt &transpositionTabel;
      |             ^~~~~~~~~~~~~~~~~~
search.h:35:22: warning: declaration of ‘timeManagement’ shadows a member of ‘Search’ [-Wshadow]
   35 |         Search(Time &timeManagement,
      |                ~~~~~~^~~~~~~~~~~~~~
search.h:76:15: note: shadowed declaration is here
   76 |         Time &timeManagement;
      |               ^~~~~~~~~~~~~~
search.h: In constructor ‘Search::Search(Time&, tt&, History&, MoveOrder&, network&)’:
search.h:39:29: warning: declaration of ‘net’ shadows a member of ‘Search’ [-Wshadow]
   39 |                    network &net) : timeManagement(timeManagement),
      |                    ~~~~~~~~~^~~
search.h:80:18: note: shadowed declaration is here
   80 |         network &net;
      |                  ^~~
search.h:38:31: warning: declaration of ‘moveOrder’ shadows a member of ‘Search’ [-Wshadow]
   38 |                    MoveOrder &moveOrder,
      |                    ~~~~~~~~~~~^~~~~~~~~
search.h:79:20: note: shadowed declaration is here
   79 |         MoveOrder &moveOrder;
      |                    ^~~~~~~~~
search.h:37:29: warning: declaration of ‘history’ shadows a member of ‘Search’ [-Wshadow]
   37 |                    History &history,
      |                    ~~~~~~~~~^~~~~~~
search.h:78:18: note: shadowed declaration is here
   78 |         History &history;
      |                  ^~~~~~~
search.h:36:24: warning: declaration of ‘transpositionTabel’ shadows a member of ‘Search’ [-Wshadow]
   36 |                    tt &transpositionTabel,
      |                    ~~~~^~~~~~~~~~~~~~~~~~
search.h:77:13: note: shadowed declaration is here
   77 |         tt &transpositionTabel;
      |             ^~~~~~~~~~~~~~~~~~
search.h:35:22: warning: declaration of ‘timeManagement’ shadows a member of ‘Search’ [-Wshadow]
   35 |         Search(Time &timeManagement,
      |                ~~~~~~^~~~~~~~~~~~~~
search.h:76:15: note: shadowed declaration is here
   76 |         Time &timeManagement;
      |               ^~~~~~~~~~~~~~
search.h: In constructor ‘Search::Search(Time&, tt&, History&, MoveOrder&, network&)’:
search.h:39:29: warning: declaration of ‘net’ shadows a member of ‘Search’ [-Wshadow]
   39 |                    network &net) : timeManagement(timeManagement),
      |                    ~~~~~~~~~^~~
search.h:80:18: note: shadowed declaration is here
   80 |         network &net;
      |                  ^~~
search.h:38:31: warning: declaration of ‘moveOrder’ shadows a member of ‘Search’ [-Wshadow]
   38 |                    MoveOrder &moveOrder,
      |                    ~~~~~~~~~~~^~~~~~~~~
search.h:79:20: note: shadowed declaration is here
   79 |         MoveOrder &moveOrder;
      |                    ^~~~~~~~~
search.h:37:29: warning: declaration of ‘history’ shadows a member of ‘Search’ [-Wshadow]
   37 |                    History &history,
      |                    ~~~~~~~~~^~~~~~~
search.h:78:18: note: shadowed declaration is here
   78 |         History &history;
      |                  ^~~~~~~
search.h:36:24: warning: declaration of ‘transpositionTabel’ shadows a member of ‘Search’ [-Wshadow]
   36 |                    tt &transpositionTabel,
      |                    ~~~~^~~~~~~~~~~~~~~~~~
search.h:77:13: note: shadowed declaration is here
   77 |         tt &transpositionTabel;
      |             ^~~~~~~~~~~~~~~~~~
search.h:35:22: warning: declaration of ‘timeManagement’ shadows a member of ‘Search’ [-Wshadow]
   35 |         Search(Time &timeManagement,
      |                ~~~~~~^~~~~~~~~~~~~~
search.h:76:15: note: shadowed declaration is here
   76 |         Time &timeManagement;
      |               ^~~~~~~~~~~~~~
In file included from time.h:23,
                 from search.h:27,
                 from search.cpp:22:
chess.hpp: In instantiation of ‘void chess::Board::setFenInternal(std::string_view) [with bool ctor = true; std::string_view = std::basic_string_view<char>]’:
chess.hpp:1804:33:   required from here
chess.hpp:2605:28: warning: declaration of ‘start’ shadows a global declaration [-Wshadow]
 2605 |                 const auto start = side == king_side ? king_sq + 1 : king_sq - 1;
      |                            ^~~~~
search.cpp:26:25: note: shadowed declaration is here
   26 | std::chrono::time_point start = std::chrono::steady_clock::now();
      |                         ^~~~~
In file included from time.h:23,
                 from search.h:27,
                 from search.cpp:22:
chess.hpp: In instantiation of ‘void chess::Board::setFenInternal(std::string_view) [with bool ctor = false; std::string_view = std::basic_string_view<char>]’:
chess.hpp:1807:67:   required from here
chess.hpp:2605:28: warning: declaration of ‘start’ shadows a global declaration [-Wshadow]
 2605 |                 const auto start = side == king_side ? king_sq + 1 : king_sq - 1;
      |                            ^~~~~
search.cpp:26:25: note: shadowed declaration is here
   26 | std::chrono::time_point start = std::chrono::steady_clock::now();
      |                         ^~~~~
In file included from time.h:23,
                 from time.cpp:23:
chess.hpp: In constructor ‘constexpr chess::File::File(chess::File::underlying)’:
chess.hpp:188:35: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  188 |         constexpr File(underlying file) : file(file) {}
      |                        ~~~~~~~~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::File::File(chess::File::underlying)’:
chess.hpp:188:35: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  188 |         constexpr File(underlying file) : file(file) {}
      |                        ~~~~~~~~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::File::File(chess::File::underlying)’:
chess.hpp:188:35: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  188 |         constexpr File(underlying file) : file(file) {}
      |                        ~~~~~~~~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::File::File(int)’:
chess.hpp:189:28: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  189 |         constexpr File(int file) : file(static_cast<underlying>(file)) {}
      |                        ~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::File::File(int)’:
chess.hpp:189:28: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  189 |         constexpr File(int file) : file(static_cast<underlying>(file)) {}
      |                        ~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::File::File(int)’:
chess.hpp:189:28: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  189 |         constexpr File(int file) : file(static_cast<underlying>(file)) {}
      |                        ~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::Square::Square(int)’:
chess.hpp:330:30: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  330 |         constexpr Square(int sq) : sq(static_cast<underlying>(sq)) {}
      |                          ~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Square::Square(int)’:
chess.hpp:330:30: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  330 |         constexpr Square(int sq) : sq(static_cast<underlying>(sq)) {}
      |                          ~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Square::Square(int)’:
chess.hpp:330:30: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  330 |         constexpr Square(int sq) : sq(static_cast<underlying>(sq)) {}
      |                          ~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Square::Square(chess::Square::underlying)’:
chess.hpp:333:37: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  333 |         constexpr Square(underlying sq) : sq(sq) {}
      |                          ~~~~~~~~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Square::Square(chess::Square::underlying)’:
chess.hpp:333:37: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  333 |         constexpr Square(underlying sq) : sq(sq) {}
      |                          ~~~~~~~~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Square::Square(chess::Square::underlying)’:
chess.hpp:333:37: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  333 |         constexpr Square(underlying sq) : sq(sq) {}
      |                          ~~~~~~~~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Bitboard::Bitboard(uint64_t)’:
chess.hpp:552:42: warning: declaration of ‘bits’ shadows a member of ‘chess::Bitboard’ [-Wshadow]
  552 |         constexpr Bitboard(std::uint64_t bits) : bits(bits) {}
      |                            ~~~~~~~~~~~~~~^~~~
chess.hpp:729:23: note: shadowed declaration is here
  729 |         std::uint64_t bits;
      |                       ^~~~
chess.hpp: In constructor ‘constexpr chess::Bitboard::Bitboard(uint64_t)’:
chess.hpp:552:42: warning: declaration of ‘bits’ shadows a member of ‘chess::Bitboard’ [-Wshadow]
  552 |         constexpr Bitboard(std::uint64_t bits) : bits(bits) {}
      |                            ~~~~~~~~~~~~~~^~~~
chess.hpp:729:23: note: shadowed declaration is here
  729 |         std::uint64_t bits;
      |                       ^~~~
chess.hpp: In constructor ‘constexpr chess::Bitboard::Bitboard(uint64_t)’:
chess.hpp:552:42: warning: declaration of ‘bits’ shadows a member of ‘chess::Bitboard’ [-Wshadow]
  552 |         constexpr Bitboard(std::uint64_t bits) : bits(bits) {}
      |                            ~~~~~~~~~~~~~~^~~~
chess.hpp:729:23: note: shadowed declaration is here
  729 |         std::uint64_t bits;
      |                       ^~~~
chess.hpp: In member function ‘constexpr int chess::Bitboard::lsb() const’:
chess.hpp:660:25: error: ‘countr_zero’ is not a member of ‘std’
  660 |             return std::countr_zero(bits);
      |                         ^~~~~~~~~~~
chess.hpp: In member function ‘constexpr int chess::Bitboard::msb() const’:
chess.hpp:682:25: error: ‘countl_zero’ is not a member of ‘std’
  682 |             return std::countl_zero(bits) ^ 63;
      |                         ^~~~~~~~~~~
chess.hpp: In member function ‘constexpr int chess::Bitboard::count() const’:
chess.hpp:703:25: error: ‘popcount’ is not a member of ‘std’; did you mean ‘count’?
  703 |             return std::popcount(bits);
      |                         ^~~~~~~~
      |                         count
In file included from time.h:23,
                 from time.cpp:23:
chess.hpp: In constructor ‘constexpr chess::PieceType::PieceType(chess::PieceType::underlying)’:
chess.hpp:968:40: warning: declaration of ‘pt’ shadows a member of ‘chess::PieceType’ [-Wshadow]
  968 |         constexpr PieceType(underlying pt) : pt(pt) {}
      |                             ~~~~~~~~~~~^~
chess.hpp:1053:20: note: shadowed declaration is here
 1053 |         underlying pt;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::PieceType::PieceType(chess::PieceType::underlying)’:
chess.hpp:968:40: warning: declaration of ‘pt’ shadows a member of ‘chess::PieceType’ [-Wshadow]
  968 |         constexpr PieceType(underlying pt) : pt(pt) {}
      |                             ~~~~~~~~~~~^~
chess.hpp:1053:20: note: shadowed declaration is here
 1053 |         underlying pt;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::PieceType::PieceType(chess::PieceType::underlying)’:
chess.hpp:968:40: warning: declaration of ‘pt’ shadows a member of ‘chess::PieceType’ [-Wshadow]
  968 |         constexpr PieceType(underlying pt) : pt(pt) {}
      |                             ~~~~~~~~~~~^~
chess.hpp:1053:20: note: shadowed declaration is here
 1053 |         underlying pt;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Piece::Piece(chess::Piece::underlying)’:
chess.hpp:1083:36: warning: declaration of ‘piece’ shadows a member of ‘chess::Piece’ [-Wshadow]
 1083 |         constexpr Piece(underlying piece) : piece(piece) {}
      |                         ~~~~~~~~~~~^~~~~
chess.hpp:1174:20: note: shadowed declaration is here
 1174 |         underlying piece;
      |                    ^~~~~
chess.hpp: In constructor ‘constexpr chess::Piece::Piece(chess::Piece::underlying)’:
chess.hpp:1083:36: warning: declaration of ‘piece’ shadows a member of ‘chess::Piece’ [-Wshadow]
 1083 |         constexpr Piece(underlying piece) : piece(piece) {}
      |                         ~~~~~~~~~~~^~~~~
chess.hpp:1174:20: note: shadowed declaration is here
 1174 |         underlying piece;
      |                    ^~~~~
chess.hpp: In constructor ‘constexpr chess::Piece::Piece(chess::Piece::underlying)’:
chess.hpp:1083:36: warning: declaration of ‘piece’ shadows a member of ‘chess::Piece’ [-Wshadow]
 1083 |         constexpr Piece(underlying piece) : piece(piece) {}
      |                         ~~~~~~~~~~~^~~~~
chess.hpp:1174:20: note: shadowed declaration is here
 1174 |         underlying piece;
      |                    ^~~~~
In file included from time.h:23,
                 from time.cpp:23:
chess.hpp: In constructor ‘chess::Board::State::State(const U64&, const chess::Board::CastlingRights&, const chess::Square&, const uint8_t&, const chess::Piece&)’:
chess.hpp:1782:32: warning: declaration of ‘captured_piece’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1782 |                   const Piece &captured_piece)
      |                   ~~~~~~~~~~~~~^~~~~~~~~~~~~~
chess.hpp:1779:19: note: shadowed declaration is here
 1779 |             Piece captured_piece;
      |                   ^~~~~~~~~~~~~~
chess.hpp:1781:108: warning: declaration of ‘half_moves’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                                             ~~~~~~~~~~~~~~~^~~~~~~~~~
chess.hpp:1778:21: note: shadowed declaration is here
 1778 |             uint8_t half_moves;
      |                     ^~~~~~~~~~
chess.hpp:1781:82: warning: declaration of ‘enpassant’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                    ~~~~~~~~~~~~~~^~~~~~~~~
chess.hpp:1777:20: note: shadowed declaration is here
 1777 |             Square enpassant;
      |                    ^~~~~~~~~
chess.hpp:1781:58: warning: declaration of ‘castling’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                    ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
chess.hpp:1776:28: note: shadowed declaration is here
 1776 |             CastlingRights castling;
      |                            ^~~~~~~~
chess.hpp:1781:30: warning: declaration of ‘hash’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                   ~~~~~~~~~~~^~~~
chess.hpp:1775:17: note: shadowed declaration is here
 1775 |             U64 hash;
      |                 ^~~~
chess.hpp: In constructor ‘chess::Board::State::State(const U64&, const chess::Board::CastlingRights&, const chess::Square&, const uint8_t&, const chess::Piece&)’:
chess.hpp:1782:32: warning: declaration of ‘captured_piece’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1782 |                   const Piece &captured_piece)
      |                   ~~~~~~~~~~~~~^~~~~~~~~~~~~~
chess.hpp:1779:19: note: shadowed declaration is here
 1779 |             Piece captured_piece;
      |                   ^~~~~~~~~~~~~~
chess.hpp:1781:108: warning: declaration of ‘half_moves’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                                             ~~~~~~~~~~~~~~~^~~~~~~~~~
chess.hpp:1778:21: note: shadowed declaration is here
 1778 |             uint8_t half_moves;
      |                     ^~~~~~~~~~
chess.hpp:1781:82: warning: declaration of ‘enpassant’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                    ~~~~~~~~~~~~~~^~~~~~~~~
chess.hpp:1777:20: note: shadowed declaration is here
 1777 |             Square enpassant;
      |                    ^~~~~~~~~
chess.hpp:1781:58: warning: declaration of ‘castling’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                    ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
chess.hpp:1776:28: note: shadowed declaration is here
 1776 |             CastlingRights castling;
      |                            ^~~~~~~~
chess.hpp:1781:30: warning: declaration of ‘hash’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                   ~~~~~~~~~~~^~~~
chess.hpp:1775:17: note: shadowed declaration is here
 1775 |             U64 hash;
      |                 ^~~~
chess.hpp: In constructor ‘chess::Board::State::State(const U64&, const chess::Board::CastlingRights&, const chess::Square&, const uint8_t&, const chess::Piece&)’:
chess.hpp:1782:32: warning: declaration of ‘captured_piece’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1782 |                   const Piece &captured_piece)
      |                   ~~~~~~~~~~~~~^~~~~~~~~~~~~~
chess.hpp:1779:19: note: shadowed declaration is here
 1779 |             Piece captured_piece;
      |                   ^~~~~~~~~~~~~~
chess.hpp:1781:108: warning: declaration of ‘half_moves’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                                             ~~~~~~~~~~~~~~~^~~~~~~~~~
chess.hpp:1778:21: note: shadowed declaration is here
 1778 |             uint8_t half_moves;
      |                     ^~~~~~~~~~
chess.hpp:1781:82: warning: declaration of ‘enpassant’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                    ~~~~~~~~~~~~~~^~~~~~~~~
chess.hpp:1777:20: note: shadowed declaration is here
 1777 |             Square enpassant;
      |                    ^~~~~~~~~
chess.hpp:1781:58: warning: declaration of ‘castling’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                    ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
chess.hpp:1776:28: note: shadowed declaration is here
 1776 |             CastlingRights castling;
      |                            ^~~~~~~~
chess.hpp:1781:30: warning: declaration of ‘hash’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                   ~~~~~~~~~~~^~~~
chess.hpp:1775:17: note: shadowed declaration is here
 1775 |             U64 hash;
      |                 ^~~~
chess.hpp: In constructor ‘chess::Board::Board(network*, std::string_view, bool)’:
chess.hpp:1799:33: warning: declaration of ‘net’ shadows a member of ‘chess::Board’ [-Wshadow]
 1799 |         explicit Board(network* net = nullptr, std::string_view fen = constants::STARTPOS, bool chess960 = false)
      |                        ~~~~~~~~~^~~~~~~~~~~~~
chess.hpp:2484:18: note: shadowed declaration is here
 2484 |         network* net;
      |                  ^~~
chess.hpp: In constructor ‘chess::Board::Board(network*, std::string_view, bool)’:
chess.hpp:1799:33: warning: declaration of ‘net’ shadows a member of ‘chess::Board’ [-Wshadow]
 1799 |         explicit Board(network* net = nullptr, std::string_view fen = constants::STARTPOS, bool chess960 = false)
      |                        ~~~~~~~~~^~~~~~~~~~~~~
chess.hpp:2484:18: note: shadowed declaration is here
 2484 |         network* net;
      |                  ^~~
chess.hpp: In constructor ‘chess::Board::Board(network*, std::string_view, bool)’:
chess.hpp:1799:33: warning: declaration of ‘net’ shadows a member of ‘chess::Board’ [-Wshadow]
 1799 |         explicit Board(network* net = nullptr, std::string_view fen = constants::STARTPOS, bool chess960 = false)
      |                        ~~~~~~~~~^~~~~~~~~~~~~
chess.hpp:2484:18: note: shadowed declaration is here
 2484 |         network* net;
      |                  ^~~
In file included from time.h:23,
                 from search.h:27,
                 from helper.h:23,
                 from helper.cpp:20:
chess.hpp: In constructor ‘constexpr chess::File::File(chess::File::underlying)’:
chess.hpp:188:35: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  188 |         constexpr File(underlying file) : file(file) {}
      |                        ~~~~~~~~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::File::File(chess::File::underlying)’:
chess.hpp:188:35: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  188 |         constexpr File(underlying file) : file(file) {}
      |                        ~~~~~~~~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::File::File(chess::File::underlying)’:
chess.hpp:188:35: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  188 |         constexpr File(underlying file) : file(file) {}
      |                        ~~~~~~~~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::File::File(int)’:
chess.hpp:189:28: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  189 |         constexpr File(int file) : file(static_cast<underlying>(file)) {}
      |                        ~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::File::File(int)’:
chess.hpp:189:28: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  189 |         constexpr File(int file) : file(static_cast<underlying>(file)) {}
      |                        ~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::File::File(int)’:
chess.hpp:189:28: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  189 |         constexpr File(int file) : file(static_cast<underlying>(file)) {}
      |                        ~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::Square::Square(int)’:
chess.hpp:330:30: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  330 |         constexpr Square(int sq) : sq(static_cast<underlying>(sq)) {}
      |                          ~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Square::Square(int)’:
chess.hpp:330:30: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  330 |         constexpr Square(int sq) : sq(static_cast<underlying>(sq)) {}
      |                          ~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Square::Square(int)’:
chess.hpp:330:30: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  330 |         constexpr Square(int sq) : sq(static_cast<underlying>(sq)) {}
      |                          ~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Square::Square(chess::Square::underlying)’:
chess.hpp:333:37: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  333 |         constexpr Square(underlying sq) : sq(sq) {}
      |                          ~~~~~~~~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Square::Square(chess::Square::underlying)’:
chess.hpp:333:37: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  333 |         constexpr Square(underlying sq) : sq(sq) {}
      |                          ~~~~~~~~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Square::Square(chess::Square::underlying)’:
chess.hpp:333:37: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  333 |         constexpr Square(underlying sq) : sq(sq) {}
      |                          ~~~~~~~~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Bitboard::Bitboard(uint64_t)’:
chess.hpp:552:42: warning: declaration of ‘bits’ shadows a member of ‘chess::Bitboard’ [-Wshadow]
  552 |         constexpr Bitboard(std::uint64_t bits) : bits(bits) {}
      |                            ~~~~~~~~~~~~~~^~~~
chess.hpp:729:23: note: shadowed declaration is here
  729 |         std::uint64_t bits;
      |                       ^~~~
chess.hpp: In constructor ‘constexpr chess::Bitboard::Bitboard(uint64_t)’:
chess.hpp:552:42: warning: declaration of ‘bits’ shadows a member of ‘chess::Bitboard’ [-Wshadow]
  552 |         constexpr Bitboard(std::uint64_t bits) : bits(bits) {}
      |                            ~~~~~~~~~~~~~~^~~~
chess.hpp:729:23: note: shadowed declaration is here
  729 |         std::uint64_t bits;
      |                       ^~~~
chess.hpp: In constructor ‘constexpr chess::Bitboard::Bitboard(uint64_t)’:
chess.hpp:552:42: warning: declaration of ‘bits’ shadows a member of ‘chess::Bitboard’ [-Wshadow]
  552 |         constexpr Bitboard(std::uint64_t bits) : bits(bits) {}
      |                            ~~~~~~~~~~~~~~^~~~
chess.hpp:729:23: note: shadowed declaration is here
  729 |         std::uint64_t bits;
      |                       ^~~~
chess.hpp: In member function ‘constexpr int chess::Bitboard::lsb() const’:
chess.hpp:660:25: error: ‘countr_zero’ is not a member of ‘std’
  660 |             return std::countr_zero(bits);
      |                         ^~~~~~~~~~~
chess.hpp: In member function ‘constexpr int chess::Bitboard::msb() const’:
chess.hpp:682:25: error: ‘countl_zero’ is not a member of ‘std’
  682 |             return std::countl_zero(bits) ^ 63;
      |                         ^~~~~~~~~~~
chess.hpp: In member function ‘constexpr int chess::Bitboard::count() const’:
chess.hpp:703:25: error: ‘popcount’ is not a member of ‘std’; did you mean ‘count’?
  703 |             return std::popcount(bits);
      |                         ^~~~~~~~
      |                         count
In file included from time.h:23,
                 from search.h:27,
                 from helper.h:23,
                 from helper.cpp:20:
chess.hpp: In constructor ‘constexpr chess::PieceType::PieceType(chess::PieceType::underlying)’:
chess.hpp:968:40: warning: declaration of ‘pt’ shadows a member of ‘chess::PieceType’ [-Wshadow]
  968 |         constexpr PieceType(underlying pt) : pt(pt) {}
      |                             ~~~~~~~~~~~^~
chess.hpp:1053:20: note: shadowed declaration is here
 1053 |         underlying pt;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::PieceType::PieceType(chess::PieceType::underlying)’:
chess.hpp:968:40: warning: declaration of ‘pt’ shadows a member of ‘chess::PieceType’ [-Wshadow]
  968 |         constexpr PieceType(underlying pt) : pt(pt) {}
      |                             ~~~~~~~~~~~^~
chess.hpp:1053:20: note: shadowed declaration is here
 1053 |         underlying pt;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::PieceType::PieceType(chess::PieceType::underlying)’:
chess.hpp:968:40: warning: declaration of ‘pt’ shadows a member of ‘chess::PieceType’ [-Wshadow]
  968 |         constexpr PieceType(underlying pt) : pt(pt) {}
      |                             ~~~~~~~~~~~^~
chess.hpp:1053:20: note: shadowed declaration is here
 1053 |         underlying pt;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Piece::Piece(chess::Piece::underlying)’:
chess.hpp:1083:36: warning: declaration of ‘piece’ shadows a member of ‘chess::Piece’ [-Wshadow]
 1083 |         constexpr Piece(underlying piece) : piece(piece) {}
      |                         ~~~~~~~~~~~^~~~~
chess.hpp:1174:20: note: shadowed declaration is here
 1174 |         underlying piece;
      |                    ^~~~~
chess.hpp: In constructor ‘constexpr chess::Piece::Piece(chess::Piece::underlying)’:
chess.hpp:1083:36: warning: declaration of ‘piece’ shadows a member of ‘chess::Piece’ [-Wshadow]
 1083 |         constexpr Piece(underlying piece) : piece(piece) {}
      |                         ~~~~~~~~~~~^~~~~
chess.hpp:1174:20: note: shadowed declaration is here
 1174 |         underlying piece;
      |                    ^~~~~
chess.hpp: In constructor ‘constexpr chess::Piece::Piece(chess::Piece::underlying)’:
chess.hpp:1083:36: warning: declaration of ‘piece’ shadows a member of ‘chess::Piece’ [-Wshadow]
 1083 |         constexpr Piece(underlying piece) : piece(piece) {}
      |                         ~~~~~~~~~~~^~~~~
chess.hpp:1174:20: note: shadowed declaration is here
 1174 |         underlying piece;
      |                    ^~~~~
In file included from time.h:23,
                 from search.h:27,
                 from helper.h:23,
                 from helper.cpp:20:
chess.hpp: In constructor ‘chess::Board::State::State(const U64&, const chess::Board::CastlingRights&, const chess::Square&, const uint8_t&, const chess::Piece&)’:
chess.hpp:1782:32: warning: declaration of ‘captured_piece’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1782 |                   const Piece &captured_piece)
      |                   ~~~~~~~~~~~~~^~~~~~~~~~~~~~
chess.hpp:1779:19: note: shadowed declaration is here
 1779 |             Piece captured_piece;
      |                   ^~~~~~~~~~~~~~
chess.hpp:1781:108: warning: declaration of ‘half_moves’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                                             ~~~~~~~~~~~~~~~^~~~~~~~~~
chess.hpp:1778:21: note: shadowed declaration is here
 1778 |             uint8_t half_moves;
      |                     ^~~~~~~~~~
chess.hpp:1781:82: warning: declaration of ‘enpassant’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                    ~~~~~~~~~~~~~~^~~~~~~~~
chess.hpp:1777:20: note: shadowed declaration is here
 1777 |             Square enpassant;
      |                    ^~~~~~~~~
chess.hpp:1781:58: warning: declaration of ‘castling’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                    ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
chess.hpp:1776:28: note: shadowed declaration is here
 1776 |             CastlingRights castling;
      |                            ^~~~~~~~
chess.hpp:1781:30: warning: declaration of ‘hash’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                   ~~~~~~~~~~~^~~~
chess.hpp:1775:17: note: shadowed declaration is here
 1775 |             U64 hash;
      |                 ^~~~
chess.hpp: In constructor ‘chess::Board::State::State(const U64&, const chess::Board::CastlingRights&, const chess::Square&, const uint8_t&, const chess::Piece&)’:
chess.hpp:1782:32: warning: declaration of ‘captured_piece’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1782 |                   const Piece &captured_piece)
      |                   ~~~~~~~~~~~~~^~~~~~~~~~~~~~
chess.hpp:1779:19: note: shadowed declaration is here
 1779 |             Piece captured_piece;
      |                   ^~~~~~~~~~~~~~
chess.hpp:1781:108: warning: declaration of ‘half_moves’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                                             ~~~~~~~~~~~~~~~^~~~~~~~~~
chess.hpp:1778:21: note: shadowed declaration is here
 1778 |             uint8_t half_moves;
      |                     ^~~~~~~~~~
chess.hpp:1781:82: warning: declaration of ‘enpassant’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                    ~~~~~~~~~~~~~~^~~~~~~~~
chess.hpp:1777:20: note: shadowed declaration is here
 1777 |             Square enpassant;
      |                    ^~~~~~~~~
chess.hpp:1781:58: warning: declaration of ‘castling’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                    ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
chess.hpp:1776:28: note: shadowed declaration is here
 1776 |             CastlingRights castling;
      |                            ^~~~~~~~
chess.hpp:1781:30: warning: declaration of ‘hash’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                   ~~~~~~~~~~~^~~~
chess.hpp:1775:17: note: shadowed declaration is here
 1775 |             U64 hash;
      |                 ^~~~
chess.hpp: In constructor ‘chess::Board::State::State(const U64&, const chess::Board::CastlingRights&, const chess::Square&, const uint8_t&, const chess::Piece&)’:
chess.hpp:1782:32: warning: declaration of ‘captured_piece’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1782 |                   const Piece &captured_piece)
      |                   ~~~~~~~~~~~~~^~~~~~~~~~~~~~
chess.hpp:1779:19: note: shadowed declaration is here
 1779 |             Piece captured_piece;
      |                   ^~~~~~~~~~~~~~
chess.hpp:1781:108: warning: declaration of ‘half_moves’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                                             ~~~~~~~~~~~~~~~^~~~~~~~~~
chess.hpp:1778:21: note: shadowed declaration is here
 1778 |             uint8_t half_moves;
      |                     ^~~~~~~~~~
chess.hpp:1781:82: warning: declaration of ‘enpassant’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                    ~~~~~~~~~~~~~~^~~~~~~~~
chess.hpp:1777:20: note: shadowed declaration is here
 1777 |             Square enpassant;
      |                    ^~~~~~~~~
chess.hpp:1781:58: warning: declaration of ‘castling’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                    ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
chess.hpp:1776:28: note: shadowed declaration is here
 1776 |             CastlingRights castling;
      |                            ^~~~~~~~
chess.hpp:1781:30: warning: declaration of ‘hash’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                   ~~~~~~~~~~~^~~~
chess.hpp:1775:17: note: shadowed declaration is here
 1775 |             U64 hash;
      |                 ^~~~
chess.hpp: In constructor ‘chess::Board::Board(network*, std::string_view, bool)’:
chess.hpp:1799:33: warning: declaration of ‘net’ shadows a member of ‘chess::Board’ [-Wshadow]
 1799 |         explicit Board(network* net = nullptr, std::string_view fen = constants::STARTPOS, bool chess960 = false)
      |                        ~~~~~~~~~^~~~~~~~~~~~~
chess.hpp:2484:18: note: shadowed declaration is here
 2484 |         network* net;
      |                  ^~~
chess.hpp: In constructor ‘chess::Board::Board(network*, std::string_view, bool)’:
chess.hpp:1799:33: warning: declaration of ‘net’ shadows a member of ‘chess::Board’ [-Wshadow]
 1799 |         explicit Board(network* net = nullptr, std::string_view fen = constants::STARTPOS, bool chess960 = false)
      |                        ~~~~~~~~~^~~~~~~~~~~~~
chess.hpp:2484:18: note: shadowed declaration is here
 2484 |         network* net;
      |                  ^~~
chess.hpp: In constructor ‘chess::Board::Board(network*, std::string_view, bool)’:
chess.hpp:1799:33: warning: declaration of ‘net’ shadows a member of ‘chess::Board’ [-Wshadow]
 1799 |         explicit Board(network* net = nullptr, std::string_view fen = constants::STARTPOS, bool chess960 = false)
      |                        ~~~~~~~~~^~~~~~~~~~~~~
chess.hpp:2484:18: note: shadowed declaration is here
 2484 |         network* net;
      |                  ^~~
In file included from search.h:29,
                 from helper.h:23,
                 from helper.cpp:20:
moveorder.h: In constructor ‘MoveOrder::MoveOrder(History&)’:
moveorder.h:32:24: warning: declaration of ‘history’ shadows a member of ‘MoveOrder’ [-Wshadow]
   32 |     MoveOrder(History& history) : history(history) {}
      |               ~~~~~~~~~^~~~~~~
moveorder.h:30:13: note: shadowed declaration is here
   30 |     History history;
      |             ^~~~~~~
moveorder.h: In constructor ‘MoveOrder::MoveOrder(History&)’:
moveorder.h:32:24: warning: declaration of ‘history’ shadows a member of ‘MoveOrder’ [-Wshadow]
   32 |     MoveOrder(History& history) : history(history) {}
      |               ~~~~~~~~~^~~~~~~
moveorder.h:30:13: note: shadowed declaration is here
   30 |     History history;
      |             ^~~~~~~
moveorder.h: In constructor ‘MoveOrder::MoveOrder(History&)’:
moveorder.h:32:24: warning: declaration of ‘history’ shadows a member of ‘MoveOrder’ [-Wshadow]
   32 |     MoveOrder(History& history) : history(history) {}
      |               ~~~~~~~~~^~~~~~~
moveorder.h:30:13: note: shadowed declaration is here
   30 |     History history;
      |             ^~~~~~~
In file included from helper.h:23,
                 from helper.cpp:20:
search.h: In constructor ‘Search::Search(Time&, tt&, History&, MoveOrder&, network&)’:
search.h:39:29: warning: declaration of ‘net’ shadows a member of ‘Search’ [-Wshadow]
   39 |                    network &net) : timeManagement(timeManagement),
      |                    ~~~~~~~~~^~~
search.h:80:18: note: shadowed declaration is here
   80 |         network &net;
      |                  ^~~
search.h:38:31: warning: declaration of ‘moveOrder’ shadows a member of ‘Search’ [-Wshadow]
   38 |                    MoveOrder &moveOrder,
      |                    ~~~~~~~~~~~^~~~~~~~~
search.h:79:20: note: shadowed declaration is here
   79 |         MoveOrder &moveOrder;
      |                    ^~~~~~~~~
search.h:37:29: warning: declaration of ‘history’ shadows a member of ‘Search’ [-Wshadow]
   37 |                    History &history,
      |                    ~~~~~~~~~^~~~~~~
search.h:78:18: note: shadowed declaration is here
   78 |         History &history;
      |                  ^~~~~~~
search.h:36:24: warning: declaration of ‘transpositionTabel’ shadows a member of ‘Search’ [-Wshadow]
   36 |                    tt &transpositionTabel,
      |                    ~~~~^~~~~~~~~~~~~~~~~~
search.h:77:13: note: shadowed declaration is here
   77 |         tt &transpositionTabel;
      |             ^~~~~~~~~~~~~~~~~~
search.h:35:22: warning: declaration of ‘timeManagement’ shadows a member of ‘Search’ [-Wshadow]
   35 |         Search(Time &timeManagement,
      |                ~~~~~~^~~~~~~~~~~~~~
search.h:76:15: note: shadowed declaration is here
   76 |         Time &timeManagement;
      |               ^~~~~~~~~~~~~~
search.h: In constructor ‘Search::Search(Time&, tt&, History&, MoveOrder&, network&)’:
search.h:39:29: warning: declaration of ‘net’ shadows a member of ‘Search’ [-Wshadow]
   39 |                    network &net) : timeManagement(timeManagement),
      |                    ~~~~~~~~~^~~
search.h:80:18: note: shadowed declaration is here
   80 |         network &net;
      |                  ^~~
search.h:38:31: warning: declaration of ‘moveOrder’ shadows a member of ‘Search’ [-Wshadow]
   38 |                    MoveOrder &moveOrder,
      |                    ~~~~~~~~~~~^~~~~~~~~
search.h:79:20: note: shadowed declaration is here
   79 |         MoveOrder &moveOrder;
      |                    ^~~~~~~~~
search.h:37:29: warning: declaration of ‘history’ shadows a member of ‘Search’ [-Wshadow]
   37 |                    History &history,
      |                    ~~~~~~~~~^~~~~~~
search.h:78:18: note: shadowed declaration is here
   78 |         History &history;
      |                  ^~~~~~~
search.h:36:24: warning: declaration of ‘transpositionTabel’ shadows a member of ‘Search’ [-Wshadow]
   36 |                    tt &transpositionTabel,
      |                    ~~~~^~~~~~~~~~~~~~~~~~
search.h:77:13: note: shadowed declaration is here
   77 |         tt &transpositionTabel;
      |             ^~~~~~~~~~~~~~~~~~
search.h:35:22: warning: declaration of ‘timeManagement’ shadows a member of ‘Search’ [-Wshadow]
   35 |         Search(Time &timeManagement,
      |                ~~~~~~^~~~~~~~~~~~~~
search.h:76:15: note: shadowed declaration is here
   76 |         Time &timeManagement;
      |               ^~~~~~~~~~~~~~
search.h: In constructor ‘Search::Search(Time&, tt&, History&, MoveOrder&, network&)’:
search.h:39:29: warning: declaration of ‘net’ shadows a member of ‘Search’ [-Wshadow]
   39 |                    network &net) : timeManagement(timeManagement),
      |                    ~~~~~~~~~^~~
search.h:80:18: note: shadowed declaration is here
   80 |         network &net;
      |                  ^~~
search.h:38:31: warning: declaration of ‘moveOrder’ shadows a member of ‘Search’ [-Wshadow]
   38 |                    MoveOrder &moveOrder,
      |                    ~~~~~~~~~~~^~~~~~~~~
search.h:79:20: note: shadowed declaration is here
   79 |         MoveOrder &moveOrder;
      |                    ^~~~~~~~~
search.h:37:29: warning: declaration of ‘history’ shadows a member of ‘Search’ [-Wshadow]
   37 |                    History &history,
      |                    ~~~~~~~~~^~~~~~~
search.h:78:18: note: shadowed declaration is here
   78 |         History &history;
      |                  ^~~~~~~
search.h:36:24: warning: declaration of ‘transpositionTabel’ shadows a member of ‘Search’ [-Wshadow]
   36 |                    tt &transpositionTabel,
      |                    ~~~~^~~~~~~~~~~~~~~~~~
search.h:77:13: note: shadowed declaration is here
   77 |         tt &transpositionTabel;
      |             ^~~~~~~~~~~~~~~~~~
search.h:35:22: warning: declaration of ‘timeManagement’ shadows a member of ‘Search’ [-Wshadow]
   35 |         Search(Time &timeManagement,
      |                ~~~~~~^~~~~~~~~~~~~~
search.h:76:15: note: shadowed declaration is here
   76 |         Time &timeManagement;
      |               ^~~~~~~~~~~~~~
In file included from tt.h:26,
                 from tt.cpp:20:
chess.hpp: In constructor ‘constexpr chess::File::File(chess::File::underlying)’:
chess.hpp:188:35: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  188 |         constexpr File(underlying file) : file(file) {}
      |                        ~~~~~~~~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::File::File(chess::File::underlying)’:
chess.hpp:188:35: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  188 |         constexpr File(underlying file) : file(file) {}
      |                        ~~~~~~~~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::File::File(chess::File::underlying)’:
chess.hpp:188:35: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  188 |         constexpr File(underlying file) : file(file) {}
      |                        ~~~~~~~~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::File::File(int)’:
chess.hpp:189:28: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  189 |         constexpr File(int file) : file(static_cast<underlying>(file)) {}
      |                        ~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::File::File(int)’:
chess.hpp:189:28: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  189 |         constexpr File(int file) : file(static_cast<underlying>(file)) {}
      |                        ~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::File::File(int)’:
chess.hpp:189:28: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  189 |         constexpr File(int file) : file(static_cast<underlying>(file)) {}
      |                        ~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::Square::Square(int)’:
chess.hpp:330:30: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  330 |         constexpr Square(int sq) : sq(static_cast<underlying>(sq)) {}
      |                          ~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Square::Square(int)’:
chess.hpp:330:30: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  330 |         constexpr Square(int sq) : sq(static_cast<underlying>(sq)) {}
      |                          ~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Square::Square(int)’:
chess.hpp:330:30: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  330 |         constexpr Square(int sq) : sq(static_cast<underlying>(sq)) {}
      |                          ~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Square::Square(chess::Square::underlying)’:
chess.hpp:333:37: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  333 |         constexpr Square(underlying sq) : sq(sq) {}
      |                          ~~~~~~~~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Square::Square(chess::Square::underlying)’:
chess.hpp:333:37: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  333 |         constexpr Square(underlying sq) : sq(sq) {}
      |                          ~~~~~~~~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Square::Square(chess::Square::underlying)’:
chess.hpp:333:37: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  333 |         constexpr Square(underlying sq) : sq(sq) {}
      |                          ~~~~~~~~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Bitboard::Bitboard(uint64_t)’:
chess.hpp:552:42: warning: declaration of ‘bits’ shadows a member of ‘chess::Bitboard’ [-Wshadow]
  552 |         constexpr Bitboard(std::uint64_t bits) : bits(bits) {}
      |                            ~~~~~~~~~~~~~~^~~~
chess.hpp:729:23: note: shadowed declaration is here
  729 |         std::uint64_t bits;
      |                       ^~~~
chess.hpp: In constructor ‘constexpr chess::Bitboard::Bitboard(uint64_t)’:
chess.hpp:552:42: warning: declaration of ‘bits’ shadows a member of ‘chess::Bitboard’ [-Wshadow]
  552 |         constexpr Bitboard(std::uint64_t bits) : bits(bits) {}
      |                            ~~~~~~~~~~~~~~^~~~
chess.hpp:729:23: note: shadowed declaration is here
  729 |         std::uint64_t bits;
      |                       ^~~~
chess.hpp: In constructor ‘constexpr chess::Bitboard::Bitboard(uint64_t)’:
chess.hpp:552:42: warning: declaration of ‘bits’ shadows a member of ‘chess::Bitboard’ [-Wshadow]
  552 |         constexpr Bitboard(std::uint64_t bits) : bits(bits) {}
      |                            ~~~~~~~~~~~~~~^~~~
chess.hpp:729:23: note: shadowed declaration is here
  729 |         std::uint64_t bits;
      |                       ^~~~
chess.hpp: In member function ‘constexpr int chess::Bitboard::lsb() const’:
chess.hpp:660:25: error: ‘countr_zero’ is not a member of ‘std’
  660 |             return std::countr_zero(bits);
      |                         ^~~~~~~~~~~
chess.hpp: In member function ‘constexpr int chess::Bitboard::msb() const’:
chess.hpp:682:25: error: ‘countl_zero’ is not a member of ‘std’
  682 |             return std::countl_zero(bits) ^ 63;
      |                         ^~~~~~~~~~~
chess.hpp: In member function ‘constexpr int chess::Bitboard::count() const’:
chess.hpp:703:25: error: ‘popcount’ is not a member of ‘std’; did you mean ‘count’?
  703 |             return std::popcount(bits);
      |                         ^~~~~~~~
      |                         count
In file included from tt.h:26,
                 from tt.cpp:20:
chess.hpp: In constructor ‘constexpr chess::PieceType::PieceType(chess::PieceType::underlying)’:
chess.hpp:968:40: warning: declaration of ‘pt’ shadows a member of ‘chess::PieceType’ [-Wshadow]
  968 |         constexpr PieceType(underlying pt) : pt(pt) {}
      |                             ~~~~~~~~~~~^~
chess.hpp:1053:20: note: shadowed declaration is here
 1053 |         underlying pt;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::PieceType::PieceType(chess::PieceType::underlying)’:
chess.hpp:968:40: warning: declaration of ‘pt’ shadows a member of ‘chess::PieceType’ [-Wshadow]
  968 |         constexpr PieceType(underlying pt) : pt(pt) {}
      |                             ~~~~~~~~~~~^~
chess.hpp:1053:20: note: shadowed declaration is here
 1053 |         underlying pt;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::PieceType::PieceType(chess::PieceType::underlying)’:
chess.hpp:968:40: warning: declaration of ‘pt’ shadows a member of ‘chess::PieceType’ [-Wshadow]
  968 |         constexpr PieceType(underlying pt) : pt(pt) {}
      |                             ~~~~~~~~~~~^~
chess.hpp:1053:20: note: shadowed declaration is here
 1053 |         underlying pt;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Piece::Piece(chess::Piece::underlying)’:
chess.hpp:1083:36: warning: declaration of ‘piece’ shadows a member of ‘chess::Piece’ [-Wshadow]
 1083 |         constexpr Piece(underlying piece) : piece(piece) {}
      |                         ~~~~~~~~~~~^~~~~
chess.hpp:1174:20: note: shadowed declaration is here
 1174 |         underlying piece;
      |                    ^~~~~
chess.hpp: In constructor ‘constexpr chess::Piece::Piece(chess::Piece::underlying)’:
chess.hpp:1083:36: warning: declaration of ‘piece’ shadows a member of ‘chess::Piece’ [-Wshadow]
 1083 |         constexpr Piece(underlying piece) : piece(piece) {}
      |                         ~~~~~~~~~~~^~~~~
chess.hpp:1174:20: note: shadowed declaration is here
 1174 |         underlying piece;
      |                    ^~~~~
chess.hpp: In constructor ‘constexpr chess::Piece::Piece(chess::Piece::underlying)’:
chess.hpp:1083:36: warning: declaration of ‘piece’ shadows a member of ‘chess::Piece’ [-Wshadow]
 1083 |         constexpr Piece(underlying piece) : piece(piece) {}
      |                         ~~~~~~~~~~~^~~~~
chess.hpp:1174:20: note: shadowed declaration is here
 1174 |         underlying piece;
      |                    ^~~~~
In file included from tt.h:26,
                 from tt.cpp:20:
chess.hpp: In constructor ‘chess::Board::State::State(const U64&, const chess::Board::CastlingRights&, const chess::Square&, const uint8_t&, const chess::Piece&)’:
chess.hpp:1782:32: warning: declaration of ‘captured_piece’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1782 |                   const Piece &captured_piece)
      |                   ~~~~~~~~~~~~~^~~~~~~~~~~~~~
chess.hpp:1779:19: note: shadowed declaration is here
 1779 |             Piece captured_piece;
      |                   ^~~~~~~~~~~~~~
chess.hpp:1781:108: warning: declaration of ‘half_moves’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                                             ~~~~~~~~~~~~~~~^~~~~~~~~~
chess.hpp:1778:21: note: shadowed declaration is here
 1778 |             uint8_t half_moves;
      |                     ^~~~~~~~~~
chess.hpp:1781:82: warning: declaration of ‘enpassant’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                    ~~~~~~~~~~~~~~^~~~~~~~~
chess.hpp:1777:20: note: shadowed declaration is here
 1777 |             Square enpassant;
      |                    ^~~~~~~~~
chess.hpp:1781:58: warning: declaration of ‘castling’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                    ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
chess.hpp:1776:28: note: shadowed declaration is here
 1776 |             CastlingRights castling;
      |                            ^~~~~~~~
chess.hpp:1781:30: warning: declaration of ‘hash’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                   ~~~~~~~~~~~^~~~
chess.hpp:1775:17: note: shadowed declaration is here
 1775 |             U64 hash;
      |                 ^~~~
chess.hpp: In constructor ‘chess::Board::State::State(const U64&, const chess::Board::CastlingRights&, const chess::Square&, const uint8_t&, const chess::Piece&)’:
chess.hpp:1782:32: warning: declaration of ‘captured_piece’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1782 |                   const Piece &captured_piece)
      |                   ~~~~~~~~~~~~~^~~~~~~~~~~~~~
chess.hpp:1779:19: note: shadowed declaration is here
 1779 |             Piece captured_piece;
      |                   ^~~~~~~~~~~~~~
chess.hpp:1781:108: warning: declaration of ‘half_moves’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                                             ~~~~~~~~~~~~~~~^~~~~~~~~~
chess.hpp:1778:21: note: shadowed declaration is here
 1778 |             uint8_t half_moves;
      |                     ^~~~~~~~~~
chess.hpp:1781:82: warning: declaration of ‘enpassant’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                    ~~~~~~~~~~~~~~^~~~~~~~~
chess.hpp:1777:20: note: shadowed declaration is here
 1777 |             Square enpassant;
      |                    ^~~~~~~~~
chess.hpp:1781:58: warning: declaration of ‘castling’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                    ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
chess.hpp:1776:28: note: shadowed declaration is here
 1776 |             CastlingRights castling;
      |                            ^~~~~~~~
chess.hpp:1781:30: warning: declaration of ‘hash’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                   ~~~~~~~~~~~^~~~
chess.hpp:1775:17: note: shadowed declaration is here
 1775 |             U64 hash;
      |                 ^~~~
chess.hpp: In constructor ‘chess::Board::State::State(const U64&, const chess::Board::CastlingRights&, const chess::Square&, const uint8_t&, const chess::Piece&)’:
chess.hpp:1782:32: warning: declaration of ‘captured_piece’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1782 |                   const Piece &captured_piece)
      |                   ~~~~~~~~~~~~~^~~~~~~~~~~~~~
chess.hpp:1779:19: note: shadowed declaration is here
 1779 |             Piece captured_piece;
      |                   ^~~~~~~~~~~~~~
chess.hpp:1781:108: warning: declaration of ‘half_moves’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                                             ~~~~~~~~~~~~~~~^~~~~~~~~~
chess.hpp:1778:21: note: shadowed declaration is here
 1778 |             uint8_t half_moves;
      |                     ^~~~~~~~~~
chess.hpp:1781:82: warning: declaration of ‘enpassant’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                    ~~~~~~~~~~~~~~^~~~~~~~~
chess.hpp:1777:20: note: shadowed declaration is here
 1777 |             Square enpassant;
      |                    ^~~~~~~~~
chess.hpp:1781:58: warning: declaration of ‘castling’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                    ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
chess.hpp:1776:28: note: shadowed declaration is here
 1776 |             CastlingRights castling;
      |                            ^~~~~~~~
chess.hpp:1781:30: warning: declaration of ‘hash’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                   ~~~~~~~~~~~^~~~
chess.hpp:1775:17: note: shadowed declaration is here
 1775 |             U64 hash;
      |                 ^~~~
chess.hpp: In constructor ‘chess::Board::Board(network*, std::string_view, bool)’:
chess.hpp:1799:33: warning: declaration of ‘net’ shadows a member of ‘chess::Board’ [-Wshadow]
 1799 |         explicit Board(network* net = nullptr, std::string_view fen = constants::STARTPOS, bool chess960 = false)
      |                        ~~~~~~~~~^~~~~~~~~~~~~
chess.hpp:2484:18: note: shadowed declaration is here
 2484 |         network* net;
      |                  ^~~
chess.hpp: In constructor ‘chess::Board::Board(network*, std::string_view, bool)’:
chess.hpp:1799:33: warning: declaration of ‘net’ shadows a member of ‘chess::Board’ [-Wshadow]
 1799 |         explicit Board(network* net = nullptr, std::string_view fen = constants::STARTPOS, bool chess960 = false)
      |                        ~~~~~~~~~^~~~~~~~~~~~~
chess.hpp:2484:18: note: shadowed declaration is here
 2484 |         network* net;
      |                  ^~~
chess.hpp: In constructor ‘chess::Board::Board(network*, std::string_view, bool)’:
chess.hpp:1799:33: warning: declaration of ‘net’ shadows a member of ‘chess::Board’ [-Wshadow]
 1799 |         explicit Board(network* net = nullptr, std::string_view fen = constants::STARTPOS, bool chess960 = false)
      |                        ~~~~~~~~~^~~~~~~~~~~~~
chess.hpp:2484:18: note: shadowed declaration is here
 2484 |         network* net;
      |                  ^~~
In file included from search_fwd.h:4,
                 from moveorder.h:23,
                 from moveorder.cpp:20:
chess.hpp: In constructor ‘constexpr chess::File::File(chess::File::underlying)’:
chess.hpp:188:35: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  188 |         constexpr File(underlying file) : file(file) {}
      |                        ~~~~~~~~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::File::File(chess::File::underlying)’:
chess.hpp:188:35: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  188 |         constexpr File(underlying file) : file(file) {}
      |                        ~~~~~~~~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::File::File(chess::File::underlying)’:
chess.hpp:188:35: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  188 |         constexpr File(underlying file) : file(file) {}
      |                        ~~~~~~~~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::File::File(int)’:
chess.hpp:189:28: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  189 |         constexpr File(int file) : file(static_cast<underlying>(file)) {}
      |                        ~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::File::File(int)’:
chess.hpp:189:28: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  189 |         constexpr File(int file) : file(static_cast<underlying>(file)) {}
      |                        ~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::File::File(int)’:
chess.hpp:189:28: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  189 |         constexpr File(int file) : file(static_cast<underlying>(file)) {}
      |                        ~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::Square::Square(int)’:
chess.hpp:330:30: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  330 |         constexpr Square(int sq) : sq(static_cast<underlying>(sq)) {}
      |                          ~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Square::Square(int)’:
chess.hpp:330:30: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  330 |         constexpr Square(int sq) : sq(static_cast<underlying>(sq)) {}
      |                          ~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Square::Square(int)’:
chess.hpp:330:30: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  330 |         constexpr Square(int sq) : sq(static_cast<underlying>(sq)) {}
      |                          ~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Square::Square(chess::Square::underlying)’:
chess.hpp:333:37: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  333 |         constexpr Square(underlying sq) : sq(sq) {}
      |                          ~~~~~~~~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Square::Square(chess::Square::underlying)’:
chess.hpp:333:37: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  333 |         constexpr Square(underlying sq) : sq(sq) {}
      |                          ~~~~~~~~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Square::Square(chess::Square::underlying)’:
chess.hpp:333:37: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  333 |         constexpr Square(underlying sq) : sq(sq) {}
      |                          ~~~~~~~~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Bitboard::Bitboard(uint64_t)’:
chess.hpp:552:42: warning: declaration of ‘bits’ shadows a member of ‘chess::Bitboard’ [-Wshadow]
  552 |         constexpr Bitboard(std::uint64_t bits) : bits(bits) {}
      |                            ~~~~~~~~~~~~~~^~~~
chess.hpp:729:23: note: shadowed declaration is here
  729 |         std::uint64_t bits;
      |                       ^~~~
chess.hpp: In constructor ‘constexpr chess::Bitboard::Bitboard(uint64_t)’:
chess.hpp:552:42: warning: declaration of ‘bits’ shadows a member of ‘chess::Bitboard’ [-Wshadow]
  552 |         constexpr Bitboard(std::uint64_t bits) : bits(bits) {}
      |                            ~~~~~~~~~~~~~~^~~~
chess.hpp:729:23: note: shadowed declaration is here
  729 |         std::uint64_t bits;
      |                       ^~~~
chess.hpp: In constructor ‘constexpr chess::Bitboard::Bitboard(uint64_t)’:
chess.hpp:552:42: warning: declaration of ‘bits’ shadows a member of ‘chess::Bitboard’ [-Wshadow]
  552 |         constexpr Bitboard(std::uint64_t bits) : bits(bits) {}
      |                            ~~~~~~~~~~~~~~^~~~
chess.hpp:729:23: note: shadowed declaration is here
  729 |         std::uint64_t bits;
      |                       ^~~~
chess.hpp: In member function ‘constexpr int chess::Bitboard::lsb() const’:
chess.hpp:660:25: error: ‘countr_zero’ is not a member of ‘std’
  660 |             return std::countr_zero(bits);
      |                         ^~~~~~~~~~~
chess.hpp: In member function ‘constexpr int chess::Bitboard::msb() const’:
chess.hpp:682:25: error: ‘countl_zero’ is not a member of ‘std’
  682 |             return std::countl_zero(bits) ^ 63;
      |                         ^~~~~~~~~~~
chess.hpp: In member function ‘constexpr int chess::Bitboard::count() const’:
chess.hpp:703:25: error: ‘popcount’ is not a member of ‘std’; did you mean ‘count’?
  703 |             return std::popcount(bits);
      |                         ^~~~~~~~
      |                         count
In file included from search_fwd.h:4,
                 from moveorder.h:23,
                 from moveorder.cpp:20:
chess.hpp: In constructor ‘constexpr chess::PieceType::PieceType(chess::PieceType::underlying)’:
chess.hpp:968:40: warning: declaration of ‘pt’ shadows a member of ‘chess::PieceType’ [-Wshadow]
  968 |         constexpr PieceType(underlying pt) : pt(pt) {}
      |                             ~~~~~~~~~~~^~
chess.hpp:1053:20: note: shadowed declaration is here
 1053 |         underlying pt;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::PieceType::PieceType(chess::PieceType::underlying)’:
chess.hpp:968:40: warning: declaration of ‘pt’ shadows a member of ‘chess::PieceType’ [-Wshadow]
  968 |         constexpr PieceType(underlying pt) : pt(pt) {}
      |                             ~~~~~~~~~~~^~
chess.hpp:1053:20: note: shadowed declaration is here
 1053 |         underlying pt;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::PieceType::PieceType(chess::PieceType::underlying)’:
chess.hpp:968:40: warning: declaration of ‘pt’ shadows a member of ‘chess::PieceType’ [-Wshadow]
  968 |         constexpr PieceType(underlying pt) : pt(pt) {}
      |                             ~~~~~~~~~~~^~
chess.hpp:1053:20: note: shadowed declaration is here
 1053 |         underlying pt;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Piece::Piece(chess::Piece::underlying)’:
chess.hpp:1083:36: warning: declaration of ‘piece’ shadows a member of ‘chess::Piece’ [-Wshadow]
 1083 |         constexpr Piece(underlying piece) : piece(piece) {}
      |                         ~~~~~~~~~~~^~~~~
chess.hpp:1174:20: note: shadowed declaration is here
 1174 |         underlying piece;
      |                    ^~~~~
chess.hpp: In constructor ‘constexpr chess::Piece::Piece(chess::Piece::underlying)’:
chess.hpp:1083:36: warning: declaration of ‘piece’ shadows a member of ‘chess::Piece’ [-Wshadow]
 1083 |         constexpr Piece(underlying piece) : piece(piece) {}
      |                         ~~~~~~~~~~~^~~~~
chess.hpp:1174:20: note: shadowed declaration is here
 1174 |         underlying piece;
      |                    ^~~~~
chess.hpp: In constructor ‘constexpr chess::Piece::Piece(chess::Piece::underlying)’:
chess.hpp:1083:36: warning: declaration of ‘piece’ shadows a member of ‘chess::Piece’ [-Wshadow]
 1083 |         constexpr Piece(underlying piece) : piece(piece) {}
      |                         ~~~~~~~~~~~^~~~~
chess.hpp:1174:20: note: shadowed declaration is here
 1174 |         underlying piece;
      |                    ^~~~~
In file included from search_fwd.h:4,
                 from moveorder.h:23,
                 from moveorder.cpp:20:
chess.hpp: In constructor ‘chess::Board::State::State(const U64&, const chess::Board::CastlingRights&, const chess::Square&, const uint8_t&, const chess::Piece&)’:
chess.hpp:1782:32: warning: declaration of ‘captured_piece’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1782 |                   const Piece &captured_piece)
      |                   ~~~~~~~~~~~~~^~~~~~~~~~~~~~
chess.hpp:1779:19: note: shadowed declaration is here
 1779 |             Piece captured_piece;
      |                   ^~~~~~~~~~~~~~
chess.hpp:1781:108: warning: declaration of ‘half_moves’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                                             ~~~~~~~~~~~~~~~^~~~~~~~~~
chess.hpp:1778:21: note: shadowed declaration is here
 1778 |             uint8_t half_moves;
      |                     ^~~~~~~~~~
chess.hpp:1781:82: warning: declaration of ‘enpassant’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                    ~~~~~~~~~~~~~~^~~~~~~~~
chess.hpp:1777:20: note: shadowed declaration is here
 1777 |             Square enpassant;
      |                    ^~~~~~~~~
chess.hpp:1781:58: warning: declaration of ‘castling’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                    ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
chess.hpp:1776:28: note: shadowed declaration is here
 1776 |             CastlingRights castling;
      |                            ^~~~~~~~
chess.hpp:1781:30: warning: declaration of ‘hash’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                   ~~~~~~~~~~~^~~~
chess.hpp:1775:17: note: shadowed declaration is here
 1775 |             U64 hash;
      |                 ^~~~
chess.hpp: In constructor ‘chess::Board::State::State(const U64&, const chess::Board::CastlingRights&, const chess::Square&, const uint8_t&, const chess::Piece&)’:
chess.hpp:1782:32: warning: declaration of ‘captured_piece’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1782 |                   const Piece &captured_piece)
      |                   ~~~~~~~~~~~~~^~~~~~~~~~~~~~
chess.hpp:1779:19: note: shadowed declaration is here
 1779 |             Piece captured_piece;
      |                   ^~~~~~~~~~~~~~
chess.hpp:1781:108: warning: declaration of ‘half_moves’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                                             ~~~~~~~~~~~~~~~^~~~~~~~~~
chess.hpp:1778:21: note: shadowed declaration is here
 1778 |             uint8_t half_moves;
      |                     ^~~~~~~~~~
chess.hpp:1781:82: warning: declaration of ‘enpassant’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                    ~~~~~~~~~~~~~~^~~~~~~~~
chess.hpp:1777:20: note: shadowed declaration is here
 1777 |             Square enpassant;
      |                    ^~~~~~~~~
chess.hpp:1781:58: warning: declaration of ‘castling’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                    ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
chess.hpp:1776:28: note: shadowed declaration is here
 1776 |             CastlingRights castling;
      |                            ^~~~~~~~
chess.hpp:1781:30: warning: declaration of ‘hash’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                   ~~~~~~~~~~~^~~~
chess.hpp:1775:17: note: shadowed declaration is here
 1775 |             U64 hash;
      |                 ^~~~
chess.hpp: In constructor ‘chess::Board::State::State(const U64&, const chess::Board::CastlingRights&, const chess::Square&, const uint8_t&, const chess::Piece&)’:
chess.hpp:1782:32: warning: declaration of ‘captured_piece’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1782 |                   const Piece &captured_piece)
      |                   ~~~~~~~~~~~~~^~~~~~~~~~~~~~
chess.hpp:1779:19: note: shadowed declaration is here
 1779 |             Piece captured_piece;
      |                   ^~~~~~~~~~~~~~
chess.hpp:1781:108: warning: declaration of ‘half_moves’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                                             ~~~~~~~~~~~~~~~^~~~~~~~~~
chess.hpp:1778:21: note: shadowed declaration is here
 1778 |             uint8_t half_moves;
      |                     ^~~~~~~~~~
chess.hpp:1781:82: warning: declaration of ‘enpassant’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                    ~~~~~~~~~~~~~~^~~~~~~~~
chess.hpp:1777:20: note: shadowed declaration is here
 1777 |             Square enpassant;
      |                    ^~~~~~~~~
chess.hpp:1781:58: warning: declaration of ‘castling’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                    ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
chess.hpp:1776:28: note: shadowed declaration is here
 1776 |             CastlingRights castling;
      |                            ^~~~~~~~
chess.hpp:1781:30: warning: declaration of ‘hash’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                   ~~~~~~~~~~~^~~~
chess.hpp:1775:17: note: shadowed declaration is here
 1775 |             U64 hash;
      |                 ^~~~
chess.hpp: In constructor ‘chess::Board::Board(network*, std::string_view, bool)’:
chess.hpp:1799:33: warning: declaration of ‘net’ shadows a member of ‘chess::Board’ [-Wshadow]
 1799 |         explicit Board(network* net = nullptr, std::string_view fen = constants::STARTPOS, bool chess960 = false)
      |                        ~~~~~~~~~^~~~~~~~~~~~~
chess.hpp:2484:18: note: shadowed declaration is here
 2484 |         network* net;
      |                  ^~~
chess.hpp: In constructor ‘chess::Board::Board(network*, std::string_view, bool)’:
chess.hpp:1799:33: warning: declaration of ‘net’ shadows a member of ‘chess::Board’ [-Wshadow]
 1799 |         explicit Board(network* net = nullptr, std::string_view fen = constants::STARTPOS, bool chess960 = false)
      |                        ~~~~~~~~~^~~~~~~~~~~~~
chess.hpp:2484:18: note: shadowed declaration is here
 2484 |         network* net;
      |                  ^~~
chess.hpp: In constructor ‘chess::Board::Board(network*, std::string_view, bool)’:
chess.hpp:1799:33: warning: declaration of ‘net’ shadows a member of ‘chess::Board’ [-Wshadow]
 1799 |         explicit Board(network* net = nullptr, std::string_view fen = constants::STARTPOS, bool chess960 = false)
      |                        ~~~~~~~~~^~~~~~~~~~~~~
chess.hpp:2484:18: note: shadowed declaration is here
 2484 |         network* net;
      |                  ^~~
In file included from moveorder.cpp:20:
moveorder.h: In constructor ‘MoveOrder::MoveOrder(History&)’:
moveorder.h:32:24: warning: declaration of ‘history’ shadows a member of ‘MoveOrder’ [-Wshadow]
   32 |     MoveOrder(History& history) : history(history) {}
      |               ~~~~~~~~~^~~~~~~
moveorder.h:30:13: note: shadowed declaration is here
   30 |     History history;
      |             ^~~~~~~
moveorder.h: In constructor ‘MoveOrder::MoveOrder(History&)’:
moveorder.h:32:24: warning: declaration of ‘history’ shadows a member of ‘MoveOrder’ [-Wshadow]
   32 |     MoveOrder(History& history) : history(history) {}
      |               ~~~~~~~~~^~~~~~~
moveorder.h:30:13: note: shadowed declaration is here
   30 |     History history;
      |             ^~~~~~~
moveorder.h: In constructor ‘MoveOrder::MoveOrder(History&)’:
moveorder.h:32:24: warning: declaration of ‘history’ shadows a member of ‘MoveOrder’ [-Wshadow]
   32 |     MoveOrder(History& history) : history(history) {}
      |               ~~~~~~~~~^~~~~~~
moveorder.h:30:13: note: shadowed declaration is here
   30 |     History history;
      |             ^~~~~~~
In file included from see.h:23,
                 from see.cpp:20:
chess.hpp: In constructor ‘constexpr chess::File::File(chess::File::underlying)’:
chess.hpp:188:35: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  188 |         constexpr File(underlying file) : file(file) {}
      |                        ~~~~~~~~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::File::File(chess::File::underlying)’:
chess.hpp:188:35: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  188 |         constexpr File(underlying file) : file(file) {}
      |                        ~~~~~~~~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::File::File(chess::File::underlying)’:
chess.hpp:188:35: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  188 |         constexpr File(underlying file) : file(file) {}
      |                        ~~~~~~~~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::File::File(int)’:
chess.hpp:189:28: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  189 |         constexpr File(int file) : file(static_cast<underlying>(file)) {}
      |                        ~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::File::File(int)’:
chess.hpp:189:28: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  189 |         constexpr File(int file) : file(static_cast<underlying>(file)) {}
      |                        ~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::File::File(int)’:
chess.hpp:189:28: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  189 |         constexpr File(int file) : file(static_cast<underlying>(file)) {}
      |                        ~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::Square::Square(int)’:
chess.hpp:330:30: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  330 |         constexpr Square(int sq) : sq(static_cast<underlying>(sq)) {}
      |                          ~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Square::Square(int)’:
chess.hpp:330:30: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  330 |         constexpr Square(int sq) : sq(static_cast<underlying>(sq)) {}
      |                          ~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Square::Square(int)’:
chess.hpp:330:30: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  330 |         constexpr Square(int sq) : sq(static_cast<underlying>(sq)) {}
      |                          ~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Square::Square(chess::Square::underlying)’:
chess.hpp:333:37: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  333 |         constexpr Square(underlying sq) : sq(sq) {}
      |                          ~~~~~~~~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Square::Square(chess::Square::underlying)’:
chess.hpp:333:37: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  333 |         constexpr Square(underlying sq) : sq(sq) {}
      |                          ~~~~~~~~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Square::Square(chess::Square::underlying)’:
chess.hpp:333:37: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  333 |         constexpr Square(underlying sq) : sq(sq) {}
      |                          ~~~~~~~~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Bitboard::Bitboard(uint64_t)’:
chess.hpp:552:42: warning: declaration of ‘bits’ shadows a member of ‘chess::Bitboard’ [-Wshadow]
  552 |         constexpr Bitboard(std::uint64_t bits) : bits(bits) {}
      |                            ~~~~~~~~~~~~~~^~~~
chess.hpp:729:23: note: shadowed declaration is here
  729 |         std::uint64_t bits;
      |                       ^~~~
chess.hpp: In constructor ‘constexpr chess::Bitboard::Bitboard(uint64_t)’:
chess.hpp:552:42: warning: declaration of ‘bits’ shadows a member of ‘chess::Bitboard’ [-Wshadow]
  552 |         constexpr Bitboard(std::uint64_t bits) : bits(bits) {}
      |                            ~~~~~~~~~~~~~~^~~~
chess.hpp:729:23: note: shadowed declaration is here
  729 |         std::uint64_t bits;
      |                       ^~~~
chess.hpp: In constructor ‘constexpr chess::Bitboard::Bitboard(uint64_t)’:
chess.hpp:552:42: warning: declaration of ‘bits’ shadows a member of ‘chess::Bitboard’ [-Wshadow]
  552 |         constexpr Bitboard(std::uint64_t bits) : bits(bits) {}
      |                            ~~~~~~~~~~~~~~^~~~
chess.hpp:729:23: note: shadowed declaration is here
  729 |         std::uint64_t bits;
      |                       ^~~~
chess.hpp: In member function ‘constexpr int chess::Bitboard::lsb() const’:
chess.hpp:660:25: error: ‘countr_zero’ is not a member of ‘std’
  660 |             return std::countr_zero(bits);
      |                         ^~~~~~~~~~~
chess.hpp: In member function ‘constexpr int chess::Bitboard::msb() const’:
chess.hpp:682:25: error: ‘countl_zero’ is not a member of ‘std’
  682 |             return std::countl_zero(bits) ^ 63;
      |                         ^~~~~~~~~~~
chess.hpp: In member function ‘constexpr int chess::Bitboard::count() const’:
chess.hpp:703:25: error: ‘popcount’ is not a member of ‘std’; did you mean ‘count’?
  703 |             return std::popcount(bits);
      |                         ^~~~~~~~
      |                         count
In file included from see.h:23,
                 from see.cpp:20:
chess.hpp: In constructor ‘constexpr chess::PieceType::PieceType(chess::PieceType::underlying)’:
chess.hpp:968:40: warning: declaration of ‘pt’ shadows a member of ‘chess::PieceType’ [-Wshadow]
  968 |         constexpr PieceType(underlying pt) : pt(pt) {}
      |                             ~~~~~~~~~~~^~
chess.hpp:1053:20: note: shadowed declaration is here
 1053 |         underlying pt;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::PieceType::PieceType(chess::PieceType::underlying)’:
chess.hpp:968:40: warning: declaration of ‘pt’ shadows a member of ‘chess::PieceType’ [-Wshadow]
  968 |         constexpr PieceType(underlying pt) : pt(pt) {}
      |                             ~~~~~~~~~~~^~
chess.hpp:1053:20: note: shadowed declaration is here
 1053 |         underlying pt;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::PieceType::PieceType(chess::PieceType::underlying)’:
chess.hpp:968:40: warning: declaration of ‘pt’ shadows a member of ‘chess::PieceType’ [-Wshadow]
  968 |         constexpr PieceType(underlying pt) : pt(pt) {}
      |                             ~~~~~~~~~~~^~
chess.hpp:1053:20: note: shadowed declaration is here
 1053 |         underlying pt;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Piece::Piece(chess::Piece::underlying)’:
chess.hpp:1083:36: warning: declaration of ‘piece’ shadows a member of ‘chess::Piece’ [-Wshadow]
 1083 |         constexpr Piece(underlying piece) : piece(piece) {}
      |                         ~~~~~~~~~~~^~~~~
chess.hpp:1174:20: note: shadowed declaration is here
 1174 |         underlying piece;
      |                    ^~~~~
chess.hpp: In constructor ‘constexpr chess::Piece::Piece(chess::Piece::underlying)’:
chess.hpp:1083:36: warning: declaration of ‘piece’ shadows a member of ‘chess::Piece’ [-Wshadow]
 1083 |         constexpr Piece(underlying piece) : piece(piece) {}
      |                         ~~~~~~~~~~~^~~~~
chess.hpp:1174:20: note: shadowed declaration is here
 1174 |         underlying piece;
      |                    ^~~~~
chess.hpp: In constructor ‘constexpr chess::Piece::Piece(chess::Piece::underlying)’:
chess.hpp:1083:36: warning: declaration of ‘piece’ shadows a member of ‘chess::Piece’ [-Wshadow]
 1083 |         constexpr Piece(underlying piece) : piece(piece) {}
      |                         ~~~~~~~~~~~^~~~~
chess.hpp:1174:20: note: shadowed declaration is here
 1174 |         underlying piece;
      |                    ^~~~~
In file included from see.h:23,
                 from see.cpp:20:
chess.hpp: In constructor ‘chess::Board::State::State(const U64&, const chess::Board::CastlingRights&, const chess::Square&, const uint8_t&, const chess::Piece&)’:
chess.hpp:1782:32: warning: declaration of ‘captured_piece’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1782 |                   const Piece &captured_piece)
      |                   ~~~~~~~~~~~~~^~~~~~~~~~~~~~
chess.hpp:1779:19: note: shadowed declaration is here
 1779 |             Piece captured_piece;
      |                   ^~~~~~~~~~~~~~
chess.hpp:1781:108: warning: declaration of ‘half_moves’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                                             ~~~~~~~~~~~~~~~^~~~~~~~~~
chess.hpp:1778:21: note: shadowed declaration is here
 1778 |             uint8_t half_moves;
      |                     ^~~~~~~~~~
chess.hpp:1781:82: warning: declaration of ‘enpassant’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                    ~~~~~~~~~~~~~~^~~~~~~~~
chess.hpp:1777:20: note: shadowed declaration is here
 1777 |             Square enpassant;
      |                    ^~~~~~~~~
chess.hpp:1781:58: warning: declaration of ‘castling’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                    ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
chess.hpp:1776:28: note: shadowed declaration is here
 1776 |             CastlingRights castling;
      |                            ^~~~~~~~
chess.hpp:1781:30: warning: declaration of ‘hash’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                   ~~~~~~~~~~~^~~~
chess.hpp:1775:17: note: shadowed declaration is here
 1775 |             U64 hash;
      |                 ^~~~
chess.hpp: In constructor ‘chess::Board::State::State(const U64&, const chess::Board::CastlingRights&, const chess::Square&, const uint8_t&, const chess::Piece&)’:
chess.hpp:1782:32: warning: declaration of ‘captured_piece’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1782 |                   const Piece &captured_piece)
      |                   ~~~~~~~~~~~~~^~~~~~~~~~~~~~
chess.hpp:1779:19: note: shadowed declaration is here
 1779 |             Piece captured_piece;
      |                   ^~~~~~~~~~~~~~
chess.hpp:1781:108: warning: declaration of ‘half_moves’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                                             ~~~~~~~~~~~~~~~^~~~~~~~~~
chess.hpp:1778:21: note: shadowed declaration is here
 1778 |             uint8_t half_moves;
      |                     ^~~~~~~~~~
chess.hpp:1781:82: warning: declaration of ‘enpassant’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                    ~~~~~~~~~~~~~~^~~~~~~~~
chess.hpp:1777:20: note: shadowed declaration is here
 1777 |             Square enpassant;
      |                    ^~~~~~~~~
chess.hpp:1781:58: warning: declaration of ‘castling’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                    ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
chess.hpp:1776:28: note: shadowed declaration is here
 1776 |             CastlingRights castling;
      |                            ^~~~~~~~
chess.hpp:1781:30: warning: declaration of ‘hash’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                   ~~~~~~~~~~~^~~~
chess.hpp:1775:17: note: shadowed declaration is here
 1775 |             U64 hash;
      |                 ^~~~
chess.hpp: In constructor ‘chess::Board::State::State(const U64&, const chess::Board::CastlingRights&, const chess::Square&, const uint8_t&, const chess::Piece&)’:
chess.hpp:1782:32: warning: declaration of ‘captured_piece’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1782 |                   const Piece &captured_piece)
      |                   ~~~~~~~~~~~~~^~~~~~~~~~~~~~
chess.hpp:1779:19: note: shadowed declaration is here
 1779 |             Piece captured_piece;
      |                   ^~~~~~~~~~~~~~
chess.hpp:1781:108: warning: declaration of ‘half_moves’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                                             ~~~~~~~~~~~~~~~^~~~~~~~~~
chess.hpp:1778:21: note: shadowed declaration is here
 1778 |             uint8_t half_moves;
      |                     ^~~~~~~~~~
chess.hpp:1781:82: warning: declaration of ‘enpassant’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                    ~~~~~~~~~~~~~~^~~~~~~~~
chess.hpp:1777:20: note: shadowed declaration is here
 1777 |             Square enpassant;
      |                    ^~~~~~~~~
chess.hpp:1781:58: warning: declaration of ‘castling’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                    ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
chess.hpp:1776:28: note: shadowed declaration is here
 1776 |             CastlingRights castling;
      |                            ^~~~~~~~
chess.hpp:1781:30: warning: declaration of ‘hash’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                   ~~~~~~~~~~~^~~~
chess.hpp:1775:17: note: shadowed declaration is here
 1775 |             U64 hash;
      |                 ^~~~
chess.hpp: In constructor ‘chess::Board::Board(network*, std::string_view, bool)’:
chess.hpp:1799:33: warning: declaration of ‘net’ shadows a member of ‘chess::Board’ [-Wshadow]
 1799 |         explicit Board(network* net = nullptr, std::string_view fen = constants::STARTPOS, bool chess960 = false)
      |                        ~~~~~~~~~^~~~~~~~~~~~~
chess.hpp:2484:18: note: shadowed declaration is here
 2484 |         network* net;
      |                  ^~~
chess.hpp: In constructor ‘chess::Board::Board(network*, std::string_view, bool)’:
chess.hpp:1799:33: warning: declaration of ‘net’ shadows a member of ‘chess::Board’ [-Wshadow]
 1799 |         explicit Board(network* net = nullptr, std::string_view fen = constants::STARTPOS, bool chess960 = false)
      |                        ~~~~~~~~~^~~~~~~~~~~~~
chess.hpp:2484:18: note: shadowed declaration is here
 2484 |         network* net;
      |                  ^~~
chess.hpp: In constructor ‘chess::Board::Board(network*, std::string_view, bool)’:
chess.hpp:1799:33: warning: declaration of ‘net’ shadows a member of ‘chess::Board’ [-Wshadow]
 1799 |         explicit Board(network* net = nullptr, std::string_view fen = constants::STARTPOS, bool chess960 = false)
      |                        ~~~~~~~~~^~~~~~~~~~~~~
chess.hpp:2484:18: note: shadowed declaration is here
 2484 |         network* net;
      |                  ^~~
In file included from see.h:23,
                 from datagen.h:24,
                 from datagen.cpp:20:
chess.hpp: In constructor ‘constexpr chess::File::File(chess::File::underlying)’:
chess.hpp:188:35: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  188 |         constexpr File(underlying file) : file(file) {}
      |                        ~~~~~~~~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::File::File(chess::File::underlying)’:
chess.hpp:188:35: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  188 |         constexpr File(underlying file) : file(file) {}
      |                        ~~~~~~~~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::File::File(chess::File::underlying)’:
chess.hpp:188:35: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  188 |         constexpr File(underlying file) : file(file) {}
      |                        ~~~~~~~~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::File::File(int)’:
chess.hpp:189:28: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  189 |         constexpr File(int file) : file(static_cast<underlying>(file)) {}
      |                        ~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::File::File(int)’:
chess.hpp:189:28: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  189 |         constexpr File(int file) : file(static_cast<underlying>(file)) {}
      |                        ~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::File::File(int)’:
chess.hpp:189:28: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  189 |         constexpr File(int file) : file(static_cast<underlying>(file)) {}
      |                        ~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::Square::Square(int)’:
chess.hpp:330:30: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  330 |         constexpr Square(int sq) : sq(static_cast<underlying>(sq)) {}
      |                          ~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Square::Square(int)’:
chess.hpp:330:30: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  330 |         constexpr Square(int sq) : sq(static_cast<underlying>(sq)) {}
      |                          ~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Square::Square(int)’:
chess.hpp:330:30: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  330 |         constexpr Square(int sq) : sq(static_cast<underlying>(sq)) {}
      |                          ~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Square::Square(chess::Square::underlying)’:
chess.hpp:333:37: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  333 |         constexpr Square(underlying sq) : sq(sq) {}
      |                          ~~~~~~~~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Square::Square(chess::Square::underlying)’:
chess.hpp:333:37: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  333 |         constexpr Square(underlying sq) : sq(sq) {}
      |                          ~~~~~~~~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Square::Square(chess::Square::underlying)’:
chess.hpp:333:37: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  333 |         constexpr Square(underlying sq) : sq(sq) {}
      |                          ~~~~~~~~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Bitboard::Bitboard(uint64_t)’:
chess.hpp:552:42: warning: declaration of ‘bits’ shadows a member of ‘chess::Bitboard’ [-Wshadow]
  552 |         constexpr Bitboard(std::uint64_t bits) : bits(bits) {}
      |                            ~~~~~~~~~~~~~~^~~~
chess.hpp:729:23: note: shadowed declaration is here
  729 |         std::uint64_t bits;
      |                       ^~~~
chess.hpp: In constructor ‘constexpr chess::Bitboard::Bitboard(uint64_t)’:
chess.hpp:552:42: warning: declaration of ‘bits’ shadows a member of ‘chess::Bitboard’ [-Wshadow]
  552 |         constexpr Bitboard(std::uint64_t bits) : bits(bits) {}
      |                            ~~~~~~~~~~~~~~^~~~
chess.hpp:729:23: note: shadowed declaration is here
  729 |         std::uint64_t bits;
      |                       ^~~~
chess.hpp: In constructor ‘constexpr chess::Bitboard::Bitboard(uint64_t)’:
chess.hpp:552:42: warning: declaration of ‘bits’ shadows a member of ‘chess::Bitboard’ [-Wshadow]
  552 |         constexpr Bitboard(std::uint64_t bits) : bits(bits) {}
      |                            ~~~~~~~~~~~~~~^~~~
chess.hpp:729:23: note: shadowed declaration is here
  729 |         std::uint64_t bits;
      |                       ^~~~
chess.hpp: In member function ‘constexpr int chess::Bitboard::lsb() const’:
chess.hpp:660:25: error: ‘countr_zero’ is not a member of ‘std’
  660 |             return std::countr_zero(bits);
      |                         ^~~~~~~~~~~
chess.hpp: In member function ‘constexpr int chess::Bitboard::msb() const’:
chess.hpp:682:25: error: ‘countl_zero’ is not a member of ‘std’
  682 |             return std::countl_zero(bits) ^ 63;
      |                         ^~~~~~~~~~~
chess.hpp: In member function ‘constexpr int chess::Bitboard::count() const’:
chess.hpp:703:25: error: ‘popcount’ is not a member of ‘std’; did you mean ‘count’?
  703 |             return std::popcount(bits);
      |                         ^~~~~~~~
      |                         count
In file included from see.h:23,
                 from datagen.h:24,
                 from datagen.cpp:20:
chess.hpp: In constructor ‘constexpr chess::PieceType::PieceType(chess::PieceType::underlying)’:
chess.hpp:968:40: warning: declaration of ‘pt’ shadows a member of ‘chess::PieceType’ [-Wshadow]
  968 |         constexpr PieceType(underlying pt) : pt(pt) {}
      |                             ~~~~~~~~~~~^~
chess.hpp:1053:20: note: shadowed declaration is here
 1053 |         underlying pt;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::PieceType::PieceType(chess::PieceType::underlying)’:
chess.hpp:968:40: warning: declaration of ‘pt’ shadows a member of ‘chess::PieceType’ [-Wshadow]
  968 |         constexpr PieceType(underlying pt) : pt(pt) {}
      |                             ~~~~~~~~~~~^~
chess.hpp:1053:20: note: shadowed declaration is here
 1053 |         underlying pt;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::PieceType::PieceType(chess::PieceType::underlying)’:
chess.hpp:968:40: warning: declaration of ‘pt’ shadows a member of ‘chess::PieceType’ [-Wshadow]
  968 |         constexpr PieceType(underlying pt) : pt(pt) {}
      |                             ~~~~~~~~~~~^~
chess.hpp:1053:20: note: shadowed declaration is here
 1053 |         underlying pt;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Piece::Piece(chess::Piece::underlying)’:
chess.hpp:1083:36: warning: declaration of ‘piece’ shadows a member of ‘chess::Piece’ [-Wshadow]
 1083 |         constexpr Piece(underlying piece) : piece(piece) {}
      |                         ~~~~~~~~~~~^~~~~
chess.hpp:1174:20: note: shadowed declaration is here
 1174 |         underlying piece;
      |                    ^~~~~
chess.hpp: In constructor ‘constexpr chess::Piece::Piece(chess::Piece::underlying)’:
chess.hpp:1083:36: warning: declaration of ‘piece’ shadows a member of ‘chess::Piece’ [-Wshadow]
 1083 |         constexpr Piece(underlying piece) : piece(piece) {}
      |                         ~~~~~~~~~~~^~~~~
chess.hpp:1174:20: note: shadowed declaration is here
 1174 |         underlying piece;
      |                    ^~~~~
chess.hpp: In constructor ‘constexpr chess::Piece::Piece(chess::Piece::underlying)’:
chess.hpp:1083:36: warning: declaration of ‘piece’ shadows a member of ‘chess::Piece’ [-Wshadow]
 1083 |         constexpr Piece(underlying piece) : piece(piece) {}
      |                         ~~~~~~~~~~~^~~~~
chess.hpp:1174:20: note: shadowed declaration is here
 1174 |         underlying piece;
      |                    ^~~~~
In file included from see.h:23,
                 from datagen.h:24,
                 from datagen.cpp:20:
chess.hpp: In constructor ‘chess::Board::State::State(const U64&, const chess::Board::CastlingRights&, const chess::Square&, const uint8_t&, const chess::Piece&)’:
chess.hpp:1782:32: warning: declaration of ‘captured_piece’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1782 |                   const Piece &captured_piece)
      |                   ~~~~~~~~~~~~~^~~~~~~~~~~~~~
chess.hpp:1779:19: note: shadowed declaration is here
 1779 |             Piece captured_piece;
      |                   ^~~~~~~~~~~~~~
chess.hpp:1781:108: warning: declaration of ‘half_moves’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                                             ~~~~~~~~~~~~~~~^~~~~~~~~~
chess.hpp:1778:21: note: shadowed declaration is here
 1778 |             uint8_t half_moves;
      |                     ^~~~~~~~~~
chess.hpp:1781:82: warning: declaration of ‘enpassant’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                    ~~~~~~~~~~~~~~^~~~~~~~~
chess.hpp:1777:20: note: shadowed declaration is here
 1777 |             Square enpassant;
      |                    ^~~~~~~~~
chess.hpp:1781:58: warning: declaration of ‘castling’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                    ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
chess.hpp:1776:28: note: shadowed declaration is here
 1776 |             CastlingRights castling;
      |                            ^~~~~~~~
chess.hpp:1781:30: warning: declaration of ‘hash’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                   ~~~~~~~~~~~^~~~
chess.hpp:1775:17: note: shadowed declaration is here
 1775 |             U64 hash;
      |                 ^~~~
chess.hpp: In constructor ‘chess::Board::State::State(const U64&, const chess::Board::CastlingRights&, const chess::Square&, const uint8_t&, const chess::Piece&)’:
chess.hpp:1782:32: warning: declaration of ‘captured_piece’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1782 |                   const Piece &captured_piece)
      |                   ~~~~~~~~~~~~~^~~~~~~~~~~~~~
chess.hpp:1779:19: note: shadowed declaration is here
 1779 |             Piece captured_piece;
      |                   ^~~~~~~~~~~~~~
chess.hpp:1781:108: warning: declaration of ‘half_moves’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                                             ~~~~~~~~~~~~~~~^~~~~~~~~~
chess.hpp:1778:21: note: shadowed declaration is here
 1778 |             uint8_t half_moves;
      |                     ^~~~~~~~~~
chess.hpp:1781:82: warning: declaration of ‘enpassant’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                    ~~~~~~~~~~~~~~^~~~~~~~~
chess.hpp:1777:20: note: shadowed declaration is here
 1777 |             Square enpassant;
      |                    ^~~~~~~~~
chess.hpp:1781:58: warning: declaration of ‘castling’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                    ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
chess.hpp:1776:28: note: shadowed declaration is here
 1776 |             CastlingRights castling;
      |                            ^~~~~~~~
chess.hpp:1781:30: warning: declaration of ‘hash’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                   ~~~~~~~~~~~^~~~
chess.hpp:1775:17: note: shadowed declaration is here
 1775 |             U64 hash;
      |                 ^~~~
chess.hpp: In constructor ‘chess::Board::State::State(const U64&, const chess::Board::CastlingRights&, const chess::Square&, const uint8_t&, const chess::Piece&)’:
chess.hpp:1782:32: warning: declaration of ‘captured_piece’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1782 |                   const Piece &captured_piece)
      |                   ~~~~~~~~~~~~~^~~~~~~~~~~~~~
chess.hpp:1779:19: note: shadowed declaration is here
 1779 |             Piece captured_piece;
      |                   ^~~~~~~~~~~~~~
chess.hpp:1781:108: warning: declaration of ‘half_moves’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                                             ~~~~~~~~~~~~~~~^~~~~~~~~~
chess.hpp:1778:21: note: shadowed declaration is here
 1778 |             uint8_t half_moves;
      |                     ^~~~~~~~~~
chess.hpp:1781:82: warning: declaration of ‘enpassant’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                    ~~~~~~~~~~~~~~^~~~~~~~~
chess.hpp:1777:20: note: shadowed declaration is here
 1777 |             Square enpassant;
      |                    ^~~~~~~~~
chess.hpp:1781:58: warning: declaration of ‘castling’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                    ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
chess.hpp:1776:28: note: shadowed declaration is here
 1776 |             CastlingRights castling;
      |                            ^~~~~~~~
chess.hpp:1781:30: warning: declaration of ‘hash’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                   ~~~~~~~~~~~^~~~
chess.hpp:1775:17: note: shadowed declaration is here
 1775 |             U64 hash;
      |                 ^~~~
chess.hpp: In constructor ‘chess::Board::Board(network*, std::string_view, bool)’:
chess.hpp:1799:33: warning: declaration of ‘net’ shadows a member of ‘chess::Board’ [-Wshadow]
 1799 |         explicit Board(network* net = nullptr, std::string_view fen = constants::STARTPOS, bool chess960 = false)
      |                        ~~~~~~~~~^~~~~~~~~~~~~
chess.hpp:2484:18: note: shadowed declaration is here
 2484 |         network* net;
      |                  ^~~
chess.hpp: In constructor ‘chess::Board::Board(network*, std::string_view, bool)’:
chess.hpp:1799:33: warning: declaration of ‘net’ shadows a member of ‘chess::Board’ [-Wshadow]
 1799 |         explicit Board(network* net = nullptr, std::string_view fen = constants::STARTPOS, bool chess960 = false)
      |                        ~~~~~~~~~^~~~~~~~~~~~~
chess.hpp:2484:18: note: shadowed declaration is here
 2484 |         network* net;
      |                  ^~~
chess.hpp: In constructor ‘chess::Board::Board(network*, std::string_view, bool)’:
chess.hpp:1799:33: warning: declaration of ‘net’ shadows a member of ‘chess::Board’ [-Wshadow]
 1799 |         explicit Board(network* net = nullptr, std::string_view fen = constants::STARTPOS, bool chess960 = false)
      |                        ~~~~~~~~~^~~~~~~~~~~~~
chess.hpp:2484:18: note: shadowed declaration is here
 2484 |         network* net;
      |                  ^~~
In file included from search.h:29,
                 from datagen.h:25,
                 from datagen.cpp:20:
moveorder.h: In constructor ‘MoveOrder::MoveOrder(History&)’:
moveorder.h:32:24: warning: declaration of ‘history’ shadows a member of ‘MoveOrder’ [-Wshadow]
   32 |     MoveOrder(History& history) : history(history) {}
      |               ~~~~~~~~~^~~~~~~
moveorder.h:30:13: note: shadowed declaration is here
   30 |     History history;
      |             ^~~~~~~
moveorder.h: In constructor ‘MoveOrder::MoveOrder(History&)’:
moveorder.h:32:24: warning: declaration of ‘history’ shadows a member of ‘MoveOrder’ [-Wshadow]
   32 |     MoveOrder(History& history) : history(history) {}
      |               ~~~~~~~~~^~~~~~~
moveorder.h:30:13: note: shadowed declaration is here
   30 |     History history;
      |             ^~~~~~~
moveorder.h: In constructor ‘MoveOrder::MoveOrder(History&)’:
moveorder.h:32:24: warning: declaration of ‘history’ shadows a member of ‘MoveOrder’ [-Wshadow]
   32 |     MoveOrder(History& history) : history(history) {}
      |               ~~~~~~~~~^~~~~~~
moveorder.h:30:13: note: shadowed declaration is here
   30 |     History history;
      |             ^~~~~~~
In file included from datagen.h:25,
                 from datagen.cpp:20:
search.h: In constructor ‘Search::Search(Time&, tt&, History&, MoveOrder&, network&)’:
search.h:39:29: warning: declaration of ‘net’ shadows a member of ‘Search’ [-Wshadow]
   39 |                    network &net) : timeManagement(timeManagement),
      |                    ~~~~~~~~~^~~
search.h:80:18: note: shadowed declaration is here
   80 |         network &net;
      |                  ^~~
search.h:38:31: warning: declaration of ‘moveOrder’ shadows a member of ‘Search’ [-Wshadow]
   38 |                    MoveOrder &moveOrder,
      |                    ~~~~~~~~~~~^~~~~~~~~
search.h:79:20: note: shadowed declaration is here
   79 |         MoveOrder &moveOrder;
      |                    ^~~~~~~~~
search.h:37:29: warning: declaration of ‘history’ shadows a member of ‘Search’ [-Wshadow]
   37 |                    History &history,
      |                    ~~~~~~~~~^~~~~~~
search.h:78:18: note: shadowed declaration is here
   78 |         History &history;
      |                  ^~~~~~~
search.h:36:24: warning: declaration of ‘transpositionTabel’ shadows a member of ‘Search’ [-Wshadow]
   36 |                    tt &transpositionTabel,
      |                    ~~~~^~~~~~~~~~~~~~~~~~
search.h:77:13: note: shadowed declaration is here
   77 |         tt &transpositionTabel;
      |             ^~~~~~~~~~~~~~~~~~
search.h:35:22: warning: declaration of ‘timeManagement’ shadows a member of ‘Search’ [-Wshadow]
   35 |         Search(Time &timeManagement,
      |                ~~~~~~^~~~~~~~~~~~~~
search.h:76:15: note: shadowed declaration is here
   76 |         Time &timeManagement;
      |               ^~~~~~~~~~~~~~
search.h: In constructor ‘Search::Search(Time&, tt&, History&, MoveOrder&, network&)’:
search.h:39:29: warning: declaration of ‘net’ shadows a member of ‘Search’ [-Wshadow]
   39 |                    network &net) : timeManagement(timeManagement),
      |                    ~~~~~~~~~^~~
search.h:80:18: note: shadowed declaration is here
   80 |         network &net;
      |                  ^~~
search.h:38:31: warning: declaration of ‘moveOrder’ shadows a member of ‘Search’ [-Wshadow]
   38 |                    MoveOrder &moveOrder,
      |                    ~~~~~~~~~~~^~~~~~~~~
search.h:79:20: note: shadowed declaration is here
   79 |         MoveOrder &moveOrder;
      |                    ^~~~~~~~~
search.h:37:29: warning: declaration of ‘history’ shadows a member of ‘Search’ [-Wshadow]
   37 |                    History &history,
      |                    ~~~~~~~~~^~~~~~~
search.h:78:18: note: shadowed declaration is here
   78 |         History &history;
      |                  ^~~~~~~
search.h:36:24: warning: declaration of ‘transpositionTabel’ shadows a member of ‘Search’ [-Wshadow]
   36 |                    tt &transpositionTabel,
      |                    ~~~~^~~~~~~~~~~~~~~~~~
search.h:77:13: note: shadowed declaration is here
   77 |         tt &transpositionTabel;
      |             ^~~~~~~~~~~~~~~~~~
search.h:35:22: warning: declaration of ‘timeManagement’ shadows a member of ‘Search’ [-Wshadow]
   35 |         Search(Time &timeManagement,
      |                ~~~~~~^~~~~~~~~~~~~~
search.h:76:15: note: shadowed declaration is here
   76 |         Time &timeManagement;
      |               ^~~~~~~~~~~~~~
search.h: In constructor ‘Search::Search(Time&, tt&, History&, MoveOrder&, network&)’:
search.h:39:29: warning: declaration of ‘net’ shadows a member of ‘Search’ [-Wshadow]
   39 |                    network &net) : timeManagement(timeManagement),
      |                    ~~~~~~~~~^~~
search.h:80:18: note: shadowed declaration is here
   80 |         network &net;
      |                  ^~~
search.h:38:31: warning: declaration of ‘moveOrder’ shadows a member of ‘Search’ [-Wshadow]
   38 |                    MoveOrder &moveOrder,
      |                    ~~~~~~~~~~~^~~~~~~~~
search.h:79:20: note: shadowed declaration is here
   79 |         MoveOrder &moveOrder;
      |                    ^~~~~~~~~
search.h:37:29: warning: declaration of ‘history’ shadows a member of ‘Search’ [-Wshadow]
   37 |                    History &history,
      |                    ~~~~~~~~~^~~~~~~
search.h:78:18: note: shadowed declaration is here
   78 |         History &history;
      |                  ^~~~~~~
search.h:36:24: warning: declaration of ‘transpositionTabel’ shadows a member of ‘Search’ [-Wshadow]
   36 |                    tt &transpositionTabel,
      |                    ~~~~^~~~~~~~~~~~~~~~~~
search.h:77:13: note: shadowed declaration is here
   77 |         tt &transpositionTabel;
      |             ^~~~~~~~~~~~~~~~~~
search.h:35:22: warning: declaration of ‘timeManagement’ shadows a member of ‘Search’ [-Wshadow]
   35 |         Search(Time &timeManagement,
      |                ~~~~~~^~~~~~~~~~~~~~
search.h:76:15: note: shadowed declaration is here
   76 |         Time &timeManagement;
      |               ^~~~~~~~~~~~~~
In file included from search_fwd.h:4,
                 from history.h:22,
                 from history.cpp:20:
chess.hpp: In constructor ‘constexpr chess::File::File(chess::File::underlying)’:
chess.hpp:188:35: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  188 |         constexpr File(underlying file) : file(file) {}
      |                        ~~~~~~~~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::File::File(chess::File::underlying)’:
chess.hpp:188:35: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  188 |         constexpr File(underlying file) : file(file) {}
      |                        ~~~~~~~~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::File::File(chess::File::underlying)’:
chess.hpp:188:35: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  188 |         constexpr File(underlying file) : file(file) {}
      |                        ~~~~~~~~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::File::File(int)’:
chess.hpp:189:28: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  189 |         constexpr File(int file) : file(static_cast<underlying>(file)) {}
      |                        ~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::File::File(int)’:
chess.hpp:189:28: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  189 |         constexpr File(int file) : file(static_cast<underlying>(file)) {}
      |                        ~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::File::File(int)’:
chess.hpp:189:28: warning: declaration of ‘file’ shadows a member of ‘chess::File’ [-Wshadow]
  189 |         constexpr File(int file) : file(static_cast<underlying>(file)) {}
      |                        ~~~~^~~~
chess.hpp:235:20: note: shadowed declaration is here
  235 |         underlying file;
      |                    ^~~~
chess.hpp: In constructor ‘constexpr chess::Square::Square(int)’:
chess.hpp:330:30: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  330 |         constexpr Square(int sq) : sq(static_cast<underlying>(sq)) {}
      |                          ~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Square::Square(int)’:
chess.hpp:330:30: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  330 |         constexpr Square(int sq) : sq(static_cast<underlying>(sq)) {}
      |                          ~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Square::Square(int)’:
chess.hpp:330:30: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  330 |         constexpr Square(int sq) : sq(static_cast<underlying>(sq)) {}
      |                          ~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Square::Square(chess::Square::underlying)’:
chess.hpp:333:37: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  333 |         constexpr Square(underlying sq) : sq(sq) {}
      |                          ~~~~~~~~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Square::Square(chess::Square::underlying)’:
chess.hpp:333:37: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  333 |         constexpr Square(underlying sq) : sq(sq) {}
      |                          ~~~~~~~~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Square::Square(chess::Square::underlying)’:
chess.hpp:333:37: warning: declaration of ‘sq’ shadows a member of ‘chess::Square’ [-Wshadow]
  333 |         constexpr Square(underlying sq) : sq(sq) {}
      |                          ~~~~~~~~~~~^~
chess.hpp:511:20: note: shadowed declaration is here
  511 |         underlying sq;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Bitboard::Bitboard(uint64_t)’:
chess.hpp:552:42: warning: declaration of ‘bits’ shadows a member of ‘chess::Bitboard’ [-Wshadow]
  552 |         constexpr Bitboard(std::uint64_t bits) : bits(bits) {}
      |                            ~~~~~~~~~~~~~~^~~~
chess.hpp:729:23: note: shadowed declaration is here
  729 |         std::uint64_t bits;
      |                       ^~~~
chess.hpp: In constructor ‘constexpr chess::Bitboard::Bitboard(uint64_t)’:
chess.hpp:552:42: warning: declaration of ‘bits’ shadows a member of ‘chess::Bitboard’ [-Wshadow]
  552 |         constexpr Bitboard(std::uint64_t bits) : bits(bits) {}
      |                            ~~~~~~~~~~~~~~^~~~
chess.hpp:729:23: note: shadowed declaration is here
  729 |         std::uint64_t bits;
      |                       ^~~~
chess.hpp: In constructor ‘constexpr chess::Bitboard::Bitboard(uint64_t)’:
chess.hpp:552:42: warning: declaration of ‘bits’ shadows a member of ‘chess::Bitboard’ [-Wshadow]
  552 |         constexpr Bitboard(std::uint64_t bits) : bits(bits) {}
      |                            ~~~~~~~~~~~~~~^~~~
chess.hpp:729:23: note: shadowed declaration is here
  729 |         std::uint64_t bits;
      |                       ^~~~
chess.hpp: In member function ‘constexpr int chess::Bitboard::lsb() const’:
chess.hpp:660:25: error: ‘countr_zero’ is not a member of ‘std’
  660 |             return std::countr_zero(bits);
      |                         ^~~~~~~~~~~
chess.hpp: In member function ‘constexpr int chess::Bitboard::msb() const’:
chess.hpp:682:25: error: ‘countl_zero’ is not a member of ‘std’
  682 |             return std::countl_zero(bits) ^ 63;
      |                         ^~~~~~~~~~~
chess.hpp: In member function ‘constexpr int chess::Bitboard::count() const’:
chess.hpp:703:25: error: ‘popcount’ is not a member of ‘std’; did you mean ‘count’?
  703 |             return std::popcount(bits);
      |                         ^~~~~~~~
      |                         count
In file included from search_fwd.h:4,
                 from history.h:22,
                 from history.cpp:20:
chess.hpp: In constructor ‘constexpr chess::PieceType::PieceType(chess::PieceType::underlying)’:
chess.hpp:968:40: warning: declaration of ‘pt’ shadows a member of ‘chess::PieceType’ [-Wshadow]
  968 |         constexpr PieceType(underlying pt) : pt(pt) {}
      |                             ~~~~~~~~~~~^~
chess.hpp:1053:20: note: shadowed declaration is here
 1053 |         underlying pt;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::PieceType::PieceType(chess::PieceType::underlying)’:
chess.hpp:968:40: warning: declaration of ‘pt’ shadows a member of ‘chess::PieceType’ [-Wshadow]
  968 |         constexpr PieceType(underlying pt) : pt(pt) {}
      |                             ~~~~~~~~~~~^~
chess.hpp:1053:20: note: shadowed declaration is here
 1053 |         underlying pt;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::PieceType::PieceType(chess::PieceType::underlying)’:
chess.hpp:968:40: warning: declaration of ‘pt’ shadows a member of ‘chess::PieceType’ [-Wshadow]
  968 |         constexpr PieceType(underlying pt) : pt(pt) {}
      |                             ~~~~~~~~~~~^~
chess.hpp:1053:20: note: shadowed declaration is here
 1053 |         underlying pt;
      |                    ^~
chess.hpp: In constructor ‘constexpr chess::Piece::Piece(chess::Piece::underlying)’:
chess.hpp:1083:36: warning: declaration of ‘piece’ shadows a member of ‘chess::Piece’ [-Wshadow]
 1083 |         constexpr Piece(underlying piece) : piece(piece) {}
      |                         ~~~~~~~~~~~^~~~~
chess.hpp:1174:20: note: shadowed declaration is here
 1174 |         underlying piece;
      |                    ^~~~~
chess.hpp: In constructor ‘constexpr chess::Piece::Piece(chess::Piece::underlying)’:
chess.hpp:1083:36: warning: declaration of ‘piece’ shadows a member of ‘chess::Piece’ [-Wshadow]
 1083 |         constexpr Piece(underlying piece) : piece(piece) {}
      |                         ~~~~~~~~~~~^~~~~
chess.hpp:1174:20: note: shadowed declaration is here
 1174 |         underlying piece;
      |                    ^~~~~
chess.hpp: In constructor ‘constexpr chess::Piece::Piece(chess::Piece::underlying)’:
chess.hpp:1083:36: warning: declaration of ‘piece’ shadows a member of ‘chess::Piece’ [-Wshadow]
 1083 |         constexpr Piece(underlying piece) : piece(piece) {}
      |                         ~~~~~~~~~~~^~~~~
chess.hpp:1174:20: note: shadowed declaration is here
 1174 |         underlying piece;
      |                    ^~~~~
In file included from search_fwd.h:4,
                 from history.h:22,
                 from history.cpp:20:
chess.hpp: In constructor ‘chess::Board::State::State(const U64&, const chess::Board::CastlingRights&, const chess::Square&, const uint8_t&, const chess::Piece&)’:
chess.hpp:1782:32: warning: declaration of ‘captured_piece’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1782 |                   const Piece &captured_piece)
      |                   ~~~~~~~~~~~~~^~~~~~~~~~~~~~
chess.hpp:1779:19: note: shadowed declaration is here
 1779 |             Piece captured_piece;
      |                   ^~~~~~~~~~~~~~
chess.hpp:1781:108: warning: declaration of ‘half_moves’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                                             ~~~~~~~~~~~~~~~^~~~~~~~~~
chess.hpp:1778:21: note: shadowed declaration is here
 1778 |             uint8_t half_moves;
      |                     ^~~~~~~~~~
chess.hpp:1781:82: warning: declaration of ‘enpassant’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                    ~~~~~~~~~~~~~~^~~~~~~~~
chess.hpp:1777:20: note: shadowed declaration is here
 1777 |             Square enpassant;
      |                    ^~~~~~~~~
chess.hpp:1781:58: warning: declaration of ‘castling’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                    ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
chess.hpp:1776:28: note: shadowed declaration is here
 1776 |             CastlingRights castling;
      |                            ^~~~~~~~
chess.hpp:1781:30: warning: declaration of ‘hash’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                   ~~~~~~~~~~~^~~~
chess.hpp:1775:17: note: shadowed declaration is here
 1775 |             U64 hash;
      |                 ^~~~
chess.hpp: In constructor ‘chess::Board::State::State(const U64&, const chess::Board::CastlingRights&, const chess::Square&, const uint8_t&, const chess::Piece&)’:
chess.hpp:1782:32: warning: declaration of ‘captured_piece’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1782 |                   const Piece &captured_piece)
      |                   ~~~~~~~~~~~~~^~~~~~~~~~~~~~
chess.hpp:1779:19: note: shadowed declaration is here
 1779 |             Piece captured_piece;
      |                   ^~~~~~~~~~~~~~
chess.hpp:1781:108: warning: declaration of ‘half_moves’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                                             ~~~~~~~~~~~~~~~^~~~~~~~~~
chess.hpp:1778:21: note: shadowed declaration is here
 1778 |             uint8_t half_moves;
      |                     ^~~~~~~~~~
chess.hpp:1781:82: warning: declaration of ‘enpassant’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                    ~~~~~~~~~~~~~~^~~~~~~~~
chess.hpp:1777:20: note: shadowed declaration is here
 1777 |             Square enpassant;
      |                    ^~~~~~~~~
chess.hpp:1781:58: warning: declaration of ‘castling’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                    ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
chess.hpp:1776:28: note: shadowed declaration is here
 1776 |             CastlingRights castling;
      |                            ^~~~~~~~
chess.hpp:1781:30: warning: declaration of ‘hash’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                   ~~~~~~~~~~~^~~~
chess.hpp:1775:17: note: shadowed declaration is here
 1775 |             U64 hash;
      |                 ^~~~
chess.hpp: In constructor ‘chess::Board::State::State(const U64&, const chess::Board::CastlingRights&, const chess::Square&, const uint8_t&, const chess::Piece&)’:
chess.hpp:1782:32: warning: declaration of ‘captured_piece’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1782 |                   const Piece &captured_piece)
      |                   ~~~~~~~~~~~~~^~~~~~~~~~~~~~
chess.hpp:1779:19: note: shadowed declaration is here
 1779 |             Piece captured_piece;
      |                   ^~~~~~~~~~~~~~
chess.hpp:1781:108: warning: declaration of ‘half_moves’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                                             ~~~~~~~~~~~~~~~^~~~~~~~~~
chess.hpp:1778:21: note: shadowed declaration is here
 1778 |             uint8_t half_moves;
      |                     ^~~~~~~~~~
chess.hpp:1781:82: warning: declaration of ‘enpassant’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                                                    ~~~~~~~~~~~~~~^~~~~~~~~
chess.hpp:1777:20: note: shadowed declaration is here
 1777 |             Square enpassant;
      |                    ^~~~~~~~~
chess.hpp:1781:58: warning: declaration of ‘castling’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                                    ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
chess.hpp:1776:28: note: shadowed declaration is here
 1776 |             CastlingRights castling;
      |                            ^~~~~~~~
chess.hpp:1781:30: warning: declaration of ‘hash’ shadows a member of ‘chess::Board::State’ [-Wshadow]
 1781 |             State(const U64 &hash, const CastlingRights &castling, const Square &enpassant, const uint8_t &half_moves,
      |                   ~~~~~~~~~~~^~~~
chess.hpp:1775:17: note: shadowed declaration is here
 1775 |             U64 hash;
      |                 ^~~~
chess.hpp: In constructor ‘chess::Board::Board(network*, std::string_view, bool)’:
chess.hpp:1799:33: warning: declaration of ‘net’ shadows a member of ‘chess::Board’ [-Wshadow]
 1799 |         explicit Board(network* net = nullptr, std::string_view fen = constants::STARTPOS, bool chess960 = false)
      |                        ~~~~~~~~~^~~~~~~~~~~~~
chess.hpp:2484:18: note: shadowed declaration is here
 2484 |         network* net;
      |                  ^~~
chess.hpp: In constructor ‘chess::Board::Board(network*, std::string_view, bool)’:
chess.hpp:1799:33: warning: declaration of ‘net’ shadows a member of ‘chess::Board’ [-Wshadow]
 1799 |         explicit Board(network* net = nullptr, std::string_view fen = constants::STARTPOS, bool chess960 = false)
      |                        ~~~~~~~~~^~~~~~~~~~~~~
chess.hpp:2484:18: note: shadowed declaration is here
 2484 |         network* net;
      |                  ^~~
chess.hpp: In constructor ‘chess::Board::Board(network*, std::string_view, bool)’:
chess.hpp:1799:33: warning: declaration of ‘net’ shadows a member of ‘chess::Board’ [-Wshadow]
 1799 |         explicit Board(network* net = nullptr, std::string_view fen = constants::STARTPOS, bool chess960 = false)
      |                        ~~~~~~~~~^~~~~~~~~~~~~
chess.hpp:2484:18: note: shadowed declaration is here
 2484 |         network* net;
      |                  ^~~
make: *** [Makefile:17:all] 错误 1