如果一個空類的大小不能爲0,那麼std :: tuple有什麼魔力,所以unique_ptr的sizeof在64位機器中返回8?std :: unique_ptr沒有尺寸開銷?
在的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)
這也可能是依賴於實現的,因此您可能還想包括您正在討論的編譯器。 –
我不知道你的問題中'std :: tuple'與'std :: unique_ptr'有什麼關係。你能澄清嗎? – Cameron
@Cameron,_M_t是unique_ptr上的基礎類型。 – piotr