Implementation of a Hash Map in C++
Although the description claims that most C++ types are supported, I see only int and two kinds of string.  The std::hash class is specialized for quite a few more types than that:

template&lt;&gt; struct hash&lt;bool&gt;;
template&lt;&gt; struct hash&lt;char&gt;;
template&lt;&gt; struct hash&lt;signed char&gt;;
template&lt;&gt; struct hash&lt;unsigned char&gt;;
template&lt;&gt; struct hash&lt;char16_t&gt;;
template&lt;&gt; struct hash&lt;char32_t&gt;;
template&lt;&gt; struct hash&lt;wchar_t&gt;;
template&lt;&gt; struct hash&lt;short&gt;;
template&lt;&gt; struct hash&lt;unsigned short&gt;;
template&lt;&gt; struct hash&lt;int&gt;;
template&lt;&gt; struct hash&lt;unsigned int&gt;;
template&lt;&gt; struct hash&lt;long&gt;;
template&lt;&gt; struct hash&lt;long long&gt;;
template&lt;&gt; struct hash&lt;unsigned long&gt;;
template&lt;&gt; struct hash&lt;unsigned long long&gt;;
template&lt;&gt; struct hash&lt;float&gt;;
template&lt;&gt; struct hash&lt;double&gt;;
template&lt;&gt; struct hash&lt;long double&gt;;
template&lt; class T &gt; struct hash&lt;T*&gt;;


In addition, the std::string hash is very collision-prone, as it uses only the length of the string (and the char* version doesn't even use std::strlen() - are you intending to even reinvent that wheel?).



std::size_t is missing its necessary include (usually &lt;cstdlib&gt;) and is consistently misspelt.

We need to include &lt;stdexcept&gt; for std::out_of_range and std::invalid_argument.



The compiler-generated copy constructor won't do what we want with hash_entries or filled_positions - that's dangerous, and will lead to multiple objects believing they own the pointers, and double deletion.



cbegin() and cend() functions ought to be usable on a const hash_map (and begin() and end() ought to be overloaded suitably, too).  Other const methods are lacking (such as find()) which make const maps much less useful than they ought to be.