title: Generic hash for tuples in unordered_map / unordered_set
body: <p>Why doesn't <code>std::unordered_map&lt;tuple&lt;int, int&gt;, string&gt;</code> just 
  work out of the box? 
  It is tedious to have to define a hash function for <code>tuple&lt;int, int&gt;</code>, e.g.</p>
  
  <pre><code>template&lt;&gt; struct do_hash&lt;tuple&lt;int, int&gt;&gt;                               
  {   size_t operator()(std::tuple&lt;int, int&gt; const&amp; tt) const {...}  }; 
  </code></pre>
  
  <p><a href="https://stackoverflow.com/questions/3611951/building-an-unordered-map-with-tuples-as-keys">Building an unordered map with tuples as keys</a> (Matthieu M.) shows how to
  automate this for <code>boost::tuple</code>. Is there anyway of doing this for c++0x tuples without using variadic templates?</p>
  
  <p>Surely this should be in the standard :(</p>