The Movelist Object
TIP
Also checkout the Move class.
API
cpp
struct Movelist {
public:
// Throws std::out_of_range if pos is not within the range of the movelist.
constexpr Move& at(size_type pos);
constexpr const Move& at(size_type pos) const;
constexpr Move& operator[](size_type pos) noexcept;
constexpr const Move& operator[](size_type pos) const noexcept;
constexpr Move& front() noexcept;
constexpr const Move& front() const noexcept;
constexpr Move& back() noexcept;
constexpr const Move& back() const noexcept;
// Iterators
constexpr Move* begin() noexcept;
constexpr const Move* begin() const noexcept;
constexpr Move* end() noexcept;
constexpr const Move* end() const noexcept;
// Capacity
/// @brief Checks if the movelist is empty.
/// @return
constexpr bool empty() const noexcept;
/// @brief Return the number of moves in the movelist.
/// @return
constexpr int size() const noexcept;
// Modifiers
/// @brief Clears the movelist.
constexpr void clear() noexcept;
/// @brief Add a move to the end of the movelist.
/// @param move
constexpr void add(const Move& move) noexcept;
/// @brief Add a move to the end of the movelist.
/// @param move
constexpr void add(value_type&& move) noexcept;
// Other
/// @brief Checks if a move is in the movelist, returns the index of the move if it is found,
/// otherwise -1.
/// @param move
/// @return
[[deprecated("Use std::find() instead.")]] constexpr size_type find(value_type move) const noexcept;
};