76 template<
typename T,
typename ... Types >
77 static inline void hash_combine( std::size_t &seed,
const T &val,
const Types &... args )
79 seed ^= std::hash<T>()( val ) + 0x9e3779b9 + ( seed << 6 ) + ( seed >> 2 );
83 template <
typename... Types>
84 static inline std::size_t
hash_val(
const Types &... args )
86 std::size_t seed = 0xa82de1c0;
static std::size_t hash_val(const Types &... args)
use coordinates relative to the parent object
static void hash_combine(std::size_t &seed)
This is a dummy function to take the final case of hash_combine below.
std::size_t hash_fp_item(const EDA_ITEM *aItem, int aFlags=HASH_FLAGS::HASH_ALL)
Calculate hash of an EDA_ITEM.
HASH_FLAGS
Enables/disables properties that will be used for calculating the hash.
A base class for most all the KiCad significant classes used in schematics and boards.