Предположим, у меня есть класс A, который ничего не наследует, не имеет виртуальных методов и имеет ровно одну переменную типа T. Гарантирует ли C ++ sizeof(A) == sizeof(T)?
sizeof(A) == sizeof(T)
EDIT:
Также, если бы T был составным типом, это имело бы значение?
Нет, это может быть больше, чем sizeof(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));