Xiangiqgame
AI engine for Xiangqi
Loading...
Searching...
No Matches
multi_board_state_provider.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <array>
5#include <concepts>
6
7template <typename T>
8concept MultiBoardStateProviderConcept = requires(T t) {
9 typename T::KeyType;
10
11 requires std::unsigned_integral<typename T::KeyType>;
12 requires(sizeof(typename T::KeyType) * 8) % 32 == 0;
13
14 { t.primary_board_state() } -> std::same_as<typename T::KeyType>;
15 requires std::same_as<std::remove_reference_t<decltype(T::NumConfKeys)>, const size_t>;
16 {
17 t.confirmation_board_states()
18 } -> std::same_as<std::array<typename T::KeyType, T::NumConfKeys>>;
19};