//XTSTATIC_HASH_STR: it has been already implemented
enum {
STR_hash = XTSTATIC_HASH_STR("STR")/*compile time value*/,
XXX_hash = XTSTATIC_HASH_STR("XXX")/*compile time value*/
};
//class hash's simple implementation
#define XTSTATIC_HASH_TYPE(type) XTSTATIC_HASH_STR(#type)
auto vec_int_hash_way1 = XTSTATIC_HASH_TYPE(std::vector<int>);
using TmpType = std::vector<int, std::allocator<int>>;
static_assert(std::is_same_v<std::vector<int>, TmpType>);
auto vec_int_hash_way2 = XTSTATIC_HASH_TYPE(TmpType);
vec_int_hash_way1 and vec_int_hash_way2 will be different!
who can give an XTSTATIC_HASH_TYPE implementation(base on XTSTATIC_HASH_STR) where vec_int_hash_way1 and vec_int_hash_way2 will have the same value.