title: Unordered set of pairs, compilation error
body: <p>I am trying to create an unordered set of pairs</p>
  
  <p>So far I have :</p>
  
  <pre><code>typedef std::pair&lt;int, int&gt; Move;
  typedef std::unordered_set&lt;Move&gt; Set;
  </code></pre>
  
  <p>And I will be creating a set of Moves in the future for now I just have: </p>
  
  <pre><code>Set* King::possibleMoves() 
  {
    Set hello;    &lt;-------- THINK ERROR OCCURS HERE
    return &amp;hello;
  }
  </code></pre>
  
  <p>But i keep getting these 3 errors: </p>
  
  <pre><code>`/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/type_traits:770:38: error: 
    implicit instantiation of undefined template 'std::__1::hash&lt;std::__1::pair&lt;int, int&gt;
    &gt;'
  : public integral_constant&lt;bool, __is_empty(_Tp)&gt; {};
                                   ^
  /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/memory:1951:40: note: 
    in instantiation of template class
    'std::__1::is_empty&lt;std::__1::hash&lt;std::__1::pair&lt;int, int&gt; &gt; &gt;' requested here
                              bool = is_empty&lt;_T2&gt;::value
                                     ^
  /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/memory:1973:44: note: 
    in instantiation of default argument for '__libcpp_compressed_pair_switch&lt;unsigned
    long, std::__1::hash&lt;std::__1::pair&lt;int, int&gt; &gt;, false, false&gt;' required here
  template &lt;class _T1, class _T2, unsigned = __libcpp_compressed_pair_switch&lt;_T1, _T2&gt;::value&gt;
  /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/memory:2357:15: note: 
    in instantiation of default argument for '__libcpp_compressed_pair_imp&lt;unsigned long,
    std::__1::hash&lt;std::__1::pair&lt;int, int&gt; &gt; &gt;' required here
  : private __libcpp_compressed_pair_imp&lt;_T1, _T2&gt;
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__hash_table:527:55: note: 
    in instantiation of template class 'std::__1::__compressed_pair&lt;unsigned long,
    std::__1::hash&lt;std::__1::pair&lt;int, int&gt; &gt; &gt;' requested here
  __compressed_pair&lt;size_type, hasher&gt;              __p2_;
                                                    ^
   /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/unordered_set:330:13: note: 
    in instantiation of template class 'std::__1::__hash_table&lt;std::__1::pair&lt;int, int&gt;,
    std::__1::hash&lt;std::__1::pair&lt;int, int&gt; &gt;, std::__1::equal_to&lt;std::__1::pair&lt;int, int&gt;
    &gt;, std::__1::allocator&lt;std::__1::pair&lt;int, int&gt; &gt; &gt;' requested here
  __table __table_;
          ^
  King.cpp:9:7: note: in instantiation of template class
    'std::__1::unordered_set&lt;std::__1::pair&lt;int, int&gt;, std::__1::hash&lt;std::__1::pair&lt;int,
    int&gt; &gt;, std::__1::equal_to&lt;std::__1::pair&lt;int, int&gt; &gt;,
    std::__1::allocator&lt;std::__1::pair&lt;int, int&gt; &gt; &gt;' requested here
   Set hello;
    ^
  /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/memory:3081:29: note: 
        template is declared here
  template &lt;class _Tp&gt; struct hash;
                          ^
  /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/memory:1951:55: error: 
    no member named 'value' in 'std::__1::is_empty&lt;std::__1::hash&lt;std::__1::pair&lt;int, int&gt;
    &gt; &gt;'
                              bool = is_empty&lt;_T2&gt;::value
                                     ~~~~~~~~~~~~~~~^
  /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/memory:1973:44: note: 
    in instantiation of default argument for '__libcpp_compressed_pair_switch&lt;unsigned
    long, std::__1::hash&lt;std::__1::pair&lt;int, int&gt; &gt;, false, false&gt;' required here
  template &lt;class _T1, class _T2, unsigned = __libcpp_compressed_pair_switch&lt;_T1, _T2&gt;::value&gt;
                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  </code></pre>
  
  <p>The whole error is here (wouldnt let me paste above)</p>
  
  <p><a href="http://fixee.org/paste/528pvoq/" rel="noreferrer">http://fixee.org/paste/528pvoq/</a></p>