3.9/2:Tại sao có hạn chế đối với một subobject cấp cơ sở?
Đối với bất kỳ đối tượng (khác hơn là một subobject cơ sở hạng) của trivially copyable loại T, có hoặc không có đối tượng nắm giữ một giá trị hợp lệ của loại T, các byte tiềm ẩn (1.7) tạo thành đối tượng có thể được sao chép vào một mảng char hoặc unsigned char.
3,9/3:
Đối với bất kỳ loại T trivially copyable, nếu hai con trỏ đến T điểm đến đối tượng T riêng biệt obj1 và obj2, nơi không obj1 cũng không obj2 là một subobject cơ sở lớp, nếu các byte cơ bản (1.7) tạo thành obj1 là được sao chép vào obj2, obj2 sau đó sẽ giữ cùng giá trị với obj1.
Tôi hiểu các quy tắc này một cách chính thức, nhưng tôi quan tâm đến những hạn chế như vậy là gì?
Có lẽ do tối ưu hóa cơ sở trống. –
@ T.C. Nó không hoàn toàn rõ ràng. Bạn có thể cung cấp một ví dụ để giải thích? –
@DmitryFucintv Với 'struct T {}; struct D: T {int x; }; ',' sizeof (T) == 1', nhưng trong 'D', lớp con cơ sở có thể có kích thước bằng 0. –