У меня есть класс, который внутренне состоит только из массива, например ::10000
class foo {
public:
// methods
private:
int myarray[10];
};
В других местах у меня есть упакованная структура (расширение GCC), которая содержит foo:
struct __attribute__((__packed__)) bar {
foo x;
};
Но GCC жалуется, что 'foo' не упакован, поэтому бар не упакован. Теперь, если я сделаю foo упакованным, ошибка GCC исчезнет. Я намерен использовать foo в контекстах, отличных от того, что находится внутри упакованных структур, поэтому на данный момент у меня есть две версии foo, Foo и PackedFoo. Однако, поскольку каждый из них содержит только массив, и в AFAIK нет такой вещи, как «распакованный массив» в C ++, есть ли у меня вред, если я просто использую Foo и присваиваю ему упакованный атрибут? Будет ли это как-то замедлять код, который генерирует GCC, когда я использую Foo вне упакованных структур?