#define MOVEPICK_H_INCLUDED
#include <array>
+#include <cassert>
+#include <cstdint>
+#include <cstdlib>
#include <limits>
-#include <type_traits>
+#include <type_traits> // IWYU pragma: keep
#include "movegen.h"
-#include "position.h"
#include "types.h"
namespace Stockfish {
+class Position;
/// StatsEntry stores the stat table value. It is usually a number but could
/// be a move or even a nested history. We use a class instead of naked value
void fill(const T& v) {
// For standard-layout 'this' points to first struct member
- assert(std::is_standard_layout<stats>::value);
+ assert(std::is_standard_layout_v<stats>);
using entry = StatsEntry<T, D>;
entry* p = reinterpret_cast<entry*>(this);