title: Getting a hash from an arbitrary structure instance
body: <p>Is it possible to get a hash from an arbitrary instance with std::hash instead of crc_mem?</p>
  <pre><code>static uint32_t crc_table[16] = {
      0x00000000, 0x1db71064, 0x3b6e20c8, 0x26d930ac,
      0x76dc4190, 0x6b6b51f4, 0x4db26158, 0x5005713c,
      0xedb88320, 0xf00f9344, 0xd6d6a3e8, 0xcb61b38c,
      0x9b64c2b0, 0x86d3d2d4, 0xa00ae278, 0xbdbdf21c
  };
  
  unsigned long crc_update(unsigned long crc, byte data) {
      byte tbl_idx;
      tbl_idx = crc ^ (data &gt;&gt; (0 * 4));
      crc = crc_table[tbl_idx &amp; 0x0f] ^ (crc &gt;&gt; 4);
      tbl_idx = crc ^ (data &gt;&gt; (1 * 4));
      crc = crc_table[tbl_idx &amp; 0x0f] ^ (crc &gt;&gt; 4);
      return crc;
  }
  
  unsigned long crc_mem(char* s, int n) {
      unsigned long crc = ~0L;
      for (int i = 0; i &lt; n; i++) {
          crc = crc_update(crc, s[i]);
      }
      crc = ~crc;
      return crc;
  }
  
  size_t my_struct::GetChecksum() const {
      return crc_mem((char*)this, sizeof(*this));
  }
  </code></pre>
  <p>I want to use this hash for unordered_map like so std::unordered_map &lt;my_struct, int&gt; map1;</p>