In file included from /in/driver/main.cpp:5:0:
/in/hashtable.hpp: In member function 'Value& HashTable<Key, Value, Hash, KeyEqual>::operator[](const Key&)':
/in/hashtable.hpp:391:18: error: redeclaration of 'HashTable<Key, Value, Hash, KeyEqual>::Iterator it'
Iterator it = find(key);
^~
/in/hashtable.hpp:384:18: note: 'HashTable<Key, Value, Hash, KeyEqual>::Iterator it' previously declared here
Iterator it = find(key);
^~
/in/hashtable.hpp: In instantiation of 'bool HashTable<Key, Value, Hash, KeyEqual>::insert(const HashTable<Key, Value, Hash, KeyEqual>::Iterator&, const Key&, const Value&) [with Key = int; Value = int; Hash = std::hash<int>; KeyEqual = std::equal_to<int>]':
/in/hashtable.hpp:329:22: required from 'bool HashTable<Key, Value, Hash, KeyEqual>::insert(const Key&, const Value&) [with Key = int; Value = int; Hash = std::hash<int>; KeyEqual = std::equal_to<int>]'
/in/driver/main.cpp:111:43: required from here
/in/hashtable.hpp:300:13: error: passing 'const HashTable<int, int, std::hash<int>, std::equal_to<int> >::Iterator' as 'this' argument discards qualifiers [-fpermissive]
it->second = value;
^~
/in/hashtable.hpp:114:19: note: in call to 'HashTable<Key, Value, Hash, KeyEqual>::HashNode* HashTable<Key, Value, Hash, KeyEqual>::Iterator::operator->() [with Key = int; Value = int; Hash = std::hash<int>; KeyEqual = std::equal_to<int>; HashTable<Key, Value, Hash, KeyEqual>::HashNode = std::pair<const int, int>]'
HashNode *operator->() {
^~~~~~~~
/in/hashtable.hpp: In member function 'bool HashTable<Key, Value, Hash, KeyEqual>::insert(const HashTable<Key, Value, Hash, KeyEqual>::Iterator&, const Key&, const Value&) [with Key = int; Value = int; Hash = std::hash<int>; KeyEqual = std::equal_to<int>]':
/in/hashtable.hpp:314:5: error: control reaches end of non-void function [-Werror=return-type]
}
^
cc1plus: all warnings being treated as errors