Nếu kích thước của một lớp trống không thể là 0, ma thuật nào đang làm std :: tuple để sizeof của unique_ptr trả về 8 trong máy 64 bit?Làm thế nào có thể std :: unique_ptr không có kích thước trên không?
Trong unique_ptr thành viên được định nghĩa là:
typedef std::tuple<typename _Pointer::type, _Dp> __tuple_type;
__tuple_type _M_t;
đâu _Dp là lớp deleter.
Compiler là gcc phiên bản 4.7.1 (Debian 4.7.1-7)
Điều này cũng có thể phụ thuộc vào việc triển khai thực hiện, vì vậy bạn có thể muốn bao gồm trình biên dịch bạn đang nói đến. –
Tôi không chắc chắn cách 'std :: tuple' liên quan đến' std :: unique_ptr' trong câu hỏi của bạn. Bạn có thể làm rõ? – Cameron
@Cameron, _M_t là loại cơ bản trên unique_ptr. – piotr