easylocal::has_tabu_attribute_member
An explorer with a tabu_attribute(move) member, the attribute of a move that frequency-based memory counts: a value with std::hash and ==.
Synopsis
Declared in <easylocal/helpers/neighborhood_explorer.hpp>
template<class NHE>
concept has_tabu_attribute_member = requires(const NHE& neighborhood, const typename NHE::move_type& move) {
requires std_hashable<
std::remove_cvref_t<decltype(neighborhood.tabu_attribute(move))>>;
requires std::equality_comparable<
std::remove_cvref_t<decltype(neighborhood.tabu_attribute(move))>>;
};
Description
The member chooses it (the pair of jobs of a swap, ignoring their positions); without one, the move itself is the attribute when it has std::hash and ==.