title: Why the size of a pointer to a function is different from the size of a pointer to a member function?
body: <p>Isn't a pointer just an address? Or I'm missing something?</p>
  
  <p>I tested with several types of pointers: </p>
  
  <ul>
  <li>pointers to any variables is the same (8B on my platform)</li>
  <li>pointers to functions are the same size, as pointers to variables (8B again)</li>
  <li>pointers to functions with different parameters - still the same (8B)</li>
  </ul>
  
  <p>BUT pointers to member functions are bigger - 16B on my platform. </p>
  
  <p>Three things:</p>
  
  <ol>
  <li>Why are pointers to member functions bigger? What more information do they need?</li>
  <li>As far as I know, the <em>standard</em> says nothing about the size of a pointer, <strong>except</strong> that <code>void*</code> must be able to "contain" any pointer type. In other words, any pointer must be able to be casted to <code>void*</code>, right? If so, then why <code>sizeof( void* )</code> is 8, while <code>sizeof</code> a pointer to member function is 16?</li>
  <li>Are there any other examples for pointers, that are with different size (I mean, for <strong>standard</strong> platforms, not some rare and special ones)?</li>
  </ol>