Как std :: unique_ptr может не иметь размерных издержек?

Если размер пустого класса не может быть 0, какая магия делает std :: tuple, чтобы sizeof unique_ptr возвращал 8 на 64-битной машине?

В unique_ptr член определяется как:

  typedef std::tuple<typename _Pointer::type, _Dp>  __tuple_type;                 
  __tuple_type  _M_t;
,

Где _Dp - класс удалителя.

Компилятор gcc версии 4.7.1 (Debian 4.7.1-7)