title: What is the "right" way to use a GUID as the key in std::hash_map
body: <p>I want to say</p>
  
  <pre><code>std::hash_map&lt;GUID, int&gt; foo;
  </code></pre>
  
  <p>I believe to do this I must create an </p>
  
  <pre><code>bool operator &lt; (const GUID &amp;guid1, const GUID &amp;guid2);
  std::size_t hash_value(GUID const &amp;b);
  </code></pre>
  
  <p>what is the proper way to compare GUIDs? (memcmp?)  - what is the proper way to generate a hash?</p>
  
  <p>it'd be great if someone would flesh out these two functions,  I've read dozens of posts that do everything but give the final clue :-)</p>