In file included from /in/driver/main.cpp:5:0:
/in/hashtable.hpp:87:73: error: the value of 'HashPrime::g_a_sizes' is not usable in a constant expression
static constexpr size_t DEFAULT_BUCKET_SIZE = HashPrime::g_a_sizes[0];
^
/in/hashtable.hpp:8:31: note: 'HashPrime::g_a_sizes' was not declared 'constexpr'
const std::vector<size_t> g_a_sizes = { 53, 97, 193, 389, 769, 1543, 3079, 6151, 12289, 24593, 49157, 98317, 196613 };
^~~~~~~~~
/in/hashtable.hpp: In function 'int main()':
/in/hashtable.hpp:221:39: error: no match for 'operator<<' (operand types are 'std::basic_ostream<char>' and 'const HashNode {aka const std::pair<const std::__cxx11::basic_string<char>, int>}')
std::cout << "Found banana: " << *hashTable.find("banana") << std::endl;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/7/iostream:39:0,
from /in/driver/main.cpp:1:
/usr/include/c++/7/ostream:108:7: note: candidate: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(std::basic_ostream<_CharT, _Traits>::__ostream_type& (*)(std::basic_ostream<_CharT, _Traits>::__ostream_type&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]
operator<<(__ostream_type& (*__pf)(__ostream_type&))
^~~~~~~~
/usr/include/c++/7/ostream:108:7: note: no known conversion for argument 1 from 'const HashNode {aka const std::pair<const std::__cxx11::basic_string<char>, int>}' to 'std::basic_ostream<char>::__ostream_type& (*)(std::basic_ostream<char>::__ostream_type&) {aka std::basic_ostream<char>& (*)(std::basic_ostream<char>&)}'
/usr/include/c++/7/ostream:117:7: note: candidate: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(std::basic_ostream<_CharT, _Traits>::__ios_type& (*)(std::basic_ostream<_CharT, _Traits>::__ios_type&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>; std::basic_ostream<_CharT, _Traits>::__ios_type = std::basic_ios<char>]
operator<<(__ios_type& (*__pf)(__ios_type&))
^~~~~~~~
/usr/include/c++/7/ostream:117:7: note: no known conversion for argument 1 from 'const HashNode {aka const std::pair<const std::__cxx11::basic_string<char>, int>}' to 'std::basic_ostream<char>::__ios_type& (*)(std::basic_ostream<char>::__ios_type&) {aka std::basic_ios<char>& (*)(std::basic_ios<char>&)}'
/usr/include/c++/7/ostream:127:7: note: candidate: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(std::ios_base& (*)(std::ios_base&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]
operator<<(ios_base& (*__pf) (ios_base&))
^~~~~~~~
/usr/include/c++/7/ostream:127:7: note: no known conversion for argument 1 from 'const HashNode {aka const std::pair<const std::__cxx11::basic_string<char>, int>}' to 'std::ios_base& (*)(std::ios_base&)'
/usr/include/c++/7/ostream:166:7: note: candidate: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(long int) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]
operator<<(long __n)
^~~~~~~~
/usr/include/c++/7/ostream:166:7: note: no known conversion for argument 1 from 'const HashNode {aka const std::pair<const std::__cxx11::basic_string<char>, int>}' to 'long int'
/usr/include/c++/7/ostream:170:7: note: candidate: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(long unsigned int) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]
operator<<(unsigned long __n)
^~~~~~~~
/usr/include/c++/7/ostream:170:7: note: no known conversion for argument 1 from 'const HashNode {aka const std::pair<const std::__cxx11::basic_string<char>, int>}' to 'long unsigned int'
/usr/include/c++/7/ostream:174:7: note: candidate: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(bool) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]
operator<<(bool __n)
^~~~~~~~
/usr/include/c++/7/ostream:174:7: note: no known conversion for argument 1 from 'const HashNode {aka const std::pair<const std::__cxx11::basic_string<char>, int>}' to 'bool'
In file included from /usr/include/c++/7/ostream:693:0,
from /usr/include/c++/7/iostream:39,
from /in/driver/main.cpp:1:
/usr/include/c++/7/bits/ostream.tcc:91:5: note: candidate: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(short int) [with _CharT = char; _Traits = std::char_traits<char>]
basic_ostream<_CharT, _Traits>::
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/7/bits/ostream.tcc:91:5: note: no known conversion for argument 1 from 'const HashNode {aka const std::pair<const std::__cxx11::basic_string<char>, int>}' to 'short int'
In file included from /usr/include/c++/7/iostream:39:0,
from /in/driver/main.cpp:1:
/usr/include/c++/7/ostream:181:7: note: candidate: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(short unsigned int) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]
operator<<(unsigned short __n)
^~~~~~~~
/usr/include/c++/7/ostream:181:7: note: no known conversion for argument 1 from 'const HashNode {aka const std::pair<const std::__cxx11::basic_string<char>, int>}' to 'short unsigned int'
In file included from /usr/include/c++/7/ostream:693:0,
from /usr/include/c++/7/iostream:39,
from /in/driver/main.cpp:1:
/usr/include/c++/7/bits/ostream.tcc:105:5: note: candidate: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(int) [with _CharT = char; _Traits = std::char_traits<char>]
basic_ostream<_CharT, _Traits>::
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/7/bits/ostream.tcc:105:5: note: no known conversion for argument 1 from 'const HashNode {aka const std::pair<const std::__cxx11::basic_string<char>, int>}' to 'int'
In file included from /usr/include/c++/7/iostream:39:0,
from /in/driver/main.cpp:1:
/usr/include/c++/7/ostream:192:7: note: candidate: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(unsigned int) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]
operator<<(unsigned int __n)
^~~~~~~~
/usr/include/c++/7/ostream:192:7: note: no known conversion for argument 1 from 'const HashNode {aka const std::pair<const std::__cxx11::basic_string<char>, int>}' to 'unsigned int'
/usr/include/c++/7/ostream:201:7: note: candidate: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(long long int) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]
operator<<(long long __n)
^~~~~~~~
/usr/include/c++/7/ostream:201:7: note: no known conversion for argument 1 from 'const HashNode {aka const std::pair<const std::__cxx11::basic_string<char>, int>}' to 'long long int'
/usr/include/c++/7/ostream:205:7: note: candidate: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(long long unsigned int) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]
operator<<(unsigned long long __n)
^~~~~~~~
/usr/include/c++/7/ostream:205:7: note: no known conversion for argument 1 from 'const HashNode {aka const std::pair<const std::__cxx11::basic_string<char>, int>}' to 'long long unsigned int'
/usr/include/c++/7/ostream:220:7: note: candidate: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(double) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]
operator<<(double __f)
^~~~~~~~
/usr/include/c++/7/ostream:220:7: note: no known conversion for argument 1 from 'const HashNode {aka const std::pair<const std::__cxx11::basic_string<char>, int>}' to 'double'
/usr/include/c++/7/ostream:224:7: note: candidate: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(float) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]
operator<<(float __f)
^~~~~~~~
/usr/include/c++/7/ostream:224:7: note: no known conversion for argument 1 from 'const HashNode {aka const std::pair<const std::__cxx11::basic_string<char>, int>}' to 'float'
/usr/include/c++/7/ostream:232:7: note: candidate: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(long double) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]
operator<<(long double __f)
^~~~~~~~
/usr/include/c++/7/ostream:232:7: note: no known conversion for argument 1 from 'const HashNode {aka const std::pair<const std::__cxx11::basic_string<char>, int>}' to 'long double'
/usr/include/c++/7/ostream:245:7: note: candidate: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(const void*) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]
operator<<(const void* __p)
^~~~~~~~
/usr/include/c++/7/ostream:245:7: note: no known conversion for argument 1 from 'const HashNode {aka const std::pair<const std::__cxx11::basic_string<char>, int>}' to 'const void*'
In file included from /usr/include/c++/7/ostream:693:0,
from /usr/include/c++/7/iostream:39,
from /in/driver/main.cpp:1:
/usr/include/c++/7/bits/ostream.tcc:119:5: note: candidate: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(std::basic_ostream<_CharT, _Traits>::__streambuf_type*) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__streambuf_type = std::basic_streambuf<char>]
basic_ostream<_CharT, _Traits>::
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/7/bits/ostream.tcc:119:5: note: no known conversion for argument 1 from 'const HashNode {aka const std::pair<const std::__cxx11::basic_string<char>, int>}' to 'std::basic_ostream<char>::__streambuf_type* {aka std::basic_streambuf<char>*}'
In file included from /in/driver/main.cpp:2:0:
/usr/include/c++/7/iomanip:363:5: note: candidate: template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, std::_Put_time<_CharT>)
operator<<(basic_ostream<_CharT, _Traits>& __os, _Put_time<_CharT> __f)
^~~~~~~~
/usr/include/c++/7/iomanip:363:5: note: template argument deduction/substitution failed:
In file included from /in/driver/main.cpp:5:0:
/in/hashtable.hpp:221:66: note: 'std::pair<const std::__cxx11::basic_string<char>, int>' is not derived from 'std::_Put_time<_CharT>'
std::cout << "Found banana: " << *hashTable.find("banana") << std::endl;
^
In file included from /in/driver/main.cpp:2:0:
/usr/include/c++/7/iomanip:311:5: note: candidate: template<class _CharT, class _Traits, class _MoneyT> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, std::_Put_money<_MoneyT>)
operator<<(basic_ostream<_CharT, _Traits>& __os, _Put_money<_MoneyT> __f)
^~~~~~~~
/usr/include/c++/7/iomanip:311:5: note: template argument deduction/substitution failed:
In file included from /in/driver/main.cpp:5:0:
/in/hashtable.hpp:221:66: note: 'std::pair<const std::__cxx11::basic_string<char>, int>' is not derived from 'std::_Put_money<_MoneyT>'
std::cout << "Found banana: " << *hashTable.find("banana") << std::endl;
^
In file included from /in/driver/main.cpp:2:0:
/usr/include/c++/7/iomanip:238:5: note: candidate: template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, std::_Setw)
operator<<(basic_ostream<_CharT, _Traits>& __os, _Setw __f)
^~~~~~~~
/usr/include/c++/7/iomanip:238:5: note: template argument deduction/substitution failed:
In file included from /in/driver/main.cpp:5:0:
/in/hashtable.hpp:221:42: note: cannot convert 'hashTable.HashTable<std::__cxx11::basic_string<char>, int>::find(std::__cxx11::basic_string<char>(((const char*)"banana"), std::allocator<char>())).HashTable<std::__cxx11::basic_string<char>, int>::Iterator::operator*()' (type 'const HashNode {aka const std::pair<const std::__cxx11::basic_string<char>, int>}') to type 'std::_Setw'
std::cout << "Found banana: " << *hashTable.find("banana") << std::endl;
^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /in/driver/main.cpp:2:0:
/usr/include/c++/7/iomanip:208:5: note: candidate: template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, std::_Setprecision)
operator<<(basic_ostream<_CharT, _Traits>& __os, _Setprecision __f)
^~~~~~~~
/usr/include/c++/7/iomanip:208:5: note: template argument deduction/substitution failed:
In file included from /in/driver/main.cpp:5:0:
/in/hashtable.hpp:221:42: note: cannot convert 'hashTable.HashTable<std::__cxx11::basic_string<char>, int>::find(std::__cxx11::basic_string<char>(((const char*)"banana"), std::allocator<char>())).HashTable<std::__cxx11::basic_string<char>, int>::Iterator::operator*()' (type 'const HashNode {aka const std::pair<const std::__cxx11::basic_string<char>, int>}') to type 'std::_Setprecision'
std::cout << "Found banana: " << *hashTable.find("banana") << std::endl;
^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /in/driver/main.cpp:2:0:
/usr/include/c++/7/iomanip:178:5: note: candidate: template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, std::_Setfill<_CharT>)
operator<<(basic_ostream<_CharT, _Traits>& __os, _Setfill<_CharT> __f)
^~~~~~~~
/usr/include/c++/7/iomanip:178:5: note: template argument deduction/substitution failed:
In file included from /in/driver/main.cpp:5:0:
/in/hashtable.hpp:221:66: note: 'std::pair<const std::__cxx11::basic_string<char>, int>' is not derived from 'std::_Setfill<_CharT>'
std::cout << "Found banana: " << *hashTable.find("banana") << std::endl;
^
In file included from /in/driver/main.cpp:2:0:
/usr/include/c++/7/iomanip:143:5: note: candidate: template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, std::_Setbase)
operator<<(basic_ostream<_CharT, _Traits>& __os, _Setbase __f)
^~~~~~~~
/usr/include/c++/7/iomanip:143:5: note: template argument deduction/substitution failed:
In file included from /in/driver/main.cpp:5:0:
/in/hashtable.hpp:221:42: note: cannot convert 'hashTable.HashTable<std::__cxx11::basic_string<char>, int>::find(std::__cxx11::basic_string<char>(((const char*)"banana"), std::allocator<char>())).HashTable<std::__cxx11::basic_string<char>, int>::Iterator::operator*()' (type 'const HashNode {aka const std::pair<const std::__cxx11::basic_string<char>, int>}') to type 'std::_Setbase'
std::cout << "Found banana: " << *hashTable.find("banana") << std::endl;
^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /in/driver/main.cpp:2:0:
/usr/include/c++/7/iomanip:109:5: note: candidate: template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, std::_Setiosflags)
operator<<(basic_ostream<_CharT, _Traits>& __os, _Setiosflags __f)
^~~~~~~~
/usr/include/c++/7/iomanip:109:5: note: template argument deduction/substitution failed:
In file included from /in/driver/main.cpp:5:0:
/in/hashtable.hpp:221:42: note: cannot convert 'hashTable.HashTable<std::__cxx11::basic_string<char>, int>::find(std::__cxx11::basic_string<char>(((const char*)"banana"), std::allocator<char>())).HashTable<std::__cxx11::basic_string<char>, int>::Iterator::operator*()' (type 'const HashNode {aka const std::pair<const std::__cxx11::basic_string<char>, int>}') to type 'std::_Setiosflags'
std::cout << "Found banana: " << *hashTable.find("banana") << std::endl;
^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /in/driver/main.cpp:2:0:
/usr/include/c++/7/iomanip:79:5: note: candidate: template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, std::_Resetiosflags)
operator<<(basic_ostream<_CharT, _Traits>& __os, _Resetiosflags __f)
^~~~~~~~
/usr/include/c++/7/iomanip:79:5: note: template argument deduction/substitution failed:
In file included from /in/driver/main.cpp:5:0:
/in/hashtable.hpp:221:42: note: cannot convert 'hashTable.HashTable<std::__cxx11::basic_string<char>, int>::find(std::__cxx11::basic_string<char>(((const char*)"banana"), std::allocator<char>())).HashTable<std::__cxx11::basic_string<char>, int>::Iterator::operator*()' (type 'const HashNode {aka const std::pair<const std::__cxx11::basic_string<char>, int>}') to type 'std::_Resetiosflags'
std::cout << "Found banana: " << *hashTable.find("banana") << std::endl;
^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/7/iostream:39:0,
from /in/driver/main.cpp:1:
/usr/include/c++/7/ostream:682:5: note: candidate: template<class _Ostream, class _Tp> typename std::enable_if<std::__and_<std::__not_<std::is_lvalue_reference<_Tp> >, std::__is_convertible_to_basic_ostream<_Ostream>, std::__is_insertable<typename std::__is_convertible_to_basic_ostream<_Tp>::__ostream_type, const _Tp&, void> >::value, typename std::__is_convertible_to_basic_ostream<_Tp>::__ostream_type>::type std::operator<<(_Ostream&&, const _Tp&)
operator<<(_Ostream&& __os, const _Tp& __x)
^~~~~~~~
/usr/include/c++/7/ostream:682:5: note: template argument deduction/substitution failed:
/usr/include/c++/7/ostream: In substitution of 'template<class _Ostream, class _Tp> typename std::enable_if<std::__and_<std::__not_<std::is_lvalue_reference<_Tp> >, std::__is_convertible_to_basic_ostream<_Ostream>, std::__is_insertable<typename std::__is_convertible_to_basic_ostream<_Tp>::__ostream_type, const _Tp&, void> >::value, typename std::__is_convertible_to_basic_ostream<_Tp>::__ostream_type>::type std::operator<<(_Ostream&&, const _Tp&) [with _Ostream = std::basic_ostream<char>&; _Tp = std::pair<const std::__cxx11::basic_string<char>, int>]':
/in/hashtable.hpp:221:66: required from here
/usr/include/c++/7/ostream:682:5: error: no type named 'type' in 'struct std::enable_if<false, std::basic_ostream<char>&>'
/usr/include/c++/7/ostream:574:5: note: candidate: template<class _Traits> std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, const unsigned char*)
operator<<(basic_ostream<char, _Traits>& __out, const unsigned char* __s)
^~~~~~~~
/usr/inc