title: How can std::unique_ptr have no size overhead?
body: <p>If the size of an empty class can't be 0, what magic is doing std::tuple so the sizeof of unique_ptr is returning 8 in a 64 bit machine?</p>
  
  <p>In unique_ptr the member is defined as:</p>
  
  <pre><code>  typedef std::tuple&lt;typename _Pointer::type, _Dp&gt;  __tuple_type;                 
    __tuple_type  _M_t;
  </code></pre>
  
  <p>Where _Dp is the deleter class.</p>
  
  <p>Compiler is gcc version 4.7.1 (Debian 4.7.1-7) </p>