Я работаю с Hashtable на C++. Хэш-функция:reinterpret_cast <unsigned long> Invalid Cast
// Default hash function class
template <typename K>
struct KeyHash {
unsigned long operator()(const K& key) const {
return reinterpret_cast<unsigned long>(key) % TABLE_SIZE;
}
};
Тогда, когда я объявил Хеш как:
HashTable<int, std::string> hmap;
Его показ:
Invalid литая от типа 'Int' в 'unsigned_long_int'
В чем проблема с reinterpret_cast<unsigned long>
?
Может быть, это 'sizeof (unsigned long)! = Sizeof (int)', поэтому «переинтерпретировать бит-шаблон» может не иметь смысла ... Я не уверен, хотя. –
Кто этот **** дает этот downvote? Все в SO не знают все, как вы. –
Кажется, вы предполагаете, что я дал вам это нисходящее. Я этого не сделал. [Доказательство] (http://imgur.com/2tey48m). –