title: How to overload 'std::string operator()' for hashing?
body: <p>I am implementing a hashmap for a university project, and was wondering if its possible to overload <code>std::string operator ()</code> for hashing (using <code>operator ()</code> is a design choice).</p>
  <p>The hashmap is general and requires the key to have an <code>operator()</code>, this is fine for any user-defined types, but is it possible for built-in types?</p>
  <p>An explanation would be helpful, but just code will also work (my project choice is already overkill).</p>
  <p>I really don't want to reinvent the wheel by re-implimenting my own version of <code>string</code>.</p>
  <p>PS: I know that hashmaps already exist, and it has a way to hash strings, but using that would defeat the purpose of this project.</p>