C++包装类的大小

C++ sizeof wrapper class

本文关键字:包装类 C++      更新时间:2023-10-16

假设我有一个类 A,它不继承任何东西,没有虚方法,并且只有一个 T 类型的变量。C++能保证sizeof(A) == sizeof(T)吗?

编辑:

另外,如果T是复合类型,它会有所不同吗?

不,由于填充,它可能超过 sizeof(T)

我不认为它明确保证了这一点,但我认为它永远不会有所不同。

我认为C++应该保证sizeof(A) == sizeof(T)。

考虑波纹管的情况,C++应该让它像在 C 中一样工作:

A a[10];
T t[10];
A * ap = (A *) t;
T * tp = (T *) a;
memcpy(ap, tp, sizeof(*ap));